LINUX.ORG.RU

проблема с getopt()


0

0

никак не получается побороть getopt() - нужно, чтобы при отсутствии параметров выводил справку. Что я делаю не так?

Снимите с ручника. Заранее благодарю!

[code] while ((c = getopt(argc, argv, "hvi:g:c:t:")) != EOF) { switch (c) { case 'i': break; case 'g': break; case 'c': break; case 't': break; case 'h': usage(); break; case 'v': break; default: usage(); break; } }; [/code]

★★

Без параметров цикл сразу завершится, добавляй проверку отдельно.

summatus
()

> никак не получается побороть getopt() - нужно, чтобы при отсутствии параметров выводил справку. Что я делаю не так?

if(argc < 2) {
   printf("read the fucking manual\n");
}

andreyu ★★★★★
()

void
read_scgi_send_options(scgi_send_options* options, int argc, char* const argv[])
{
  int next_option;

  do
    {
      next_option = getopt_long(argc, argv, short_options, long_options, NULL);

      switch (next_option)
        {
      case 'h':
        {
          print_usage_and_exit(stdout, EXIT_SUCCESS);
        }
      case 'v':
        {
          set_verbose(options, 1);
          break;
        }
      case 'd':
        {
          set_destination(options, optarg);
          break;
        }
      case 'i':
        {
          set_input_filename(options, optarg);
          break;
        }
      case 'o':
        {
          set_output_filename(options, optarg);
          break;
        }
      case '?':
        {
          print_usage_and_exit(stderr, EXIT_FAILURE);
        }
      case -1:
        {
          break;
        }
      default:
        {
          abort();
        }
        }
    }
  while (next_option != -1);

Ian ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.