Имеем:
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#include <stdlib.h>
#include <getopt.h>
#include <time.h>
#include <ctype.h>
#define _XOPEN_SOURCE               // glibc 2 needs this
#define _GNU_SOURCE 1               // GLIBC
static struct option const opts[] =
{
        {"input-file", required_argument, NULL, "i"},
        {"output-file", required_argument, NULL, "o"},
        {"word-start", required_argument, NULL, "s"},
        {"word-length", required_argument, NULL, "l"},
        {"time", required_argument, NULL, "t"},
        {"help", no_argument, NULL, "h"},
        {"version", no_argument, NULL, "v"},
        {NULL, 0, NULL, 0}
};
main ...
int optcur;
int optionindex = -1;
while ((optcur = getopt_long(argc, argv, "i:o:s:l:hv", opts, &optionindex)) != -1)
        {
                switch (optcur)
                {
                        case 'i':
                                finputname = optarg;
                                break;
                        case 'o':
                                foutputname = optarg;
                                break;
                        case 's':
                                posofword = atoi(optarg);
                                break;
                        case 'l':
                                wordlen = atoi(optarg);
                                break;
                        case 't':
                                break;
                        case 'h':
                                usage(0);
                        case 'v':
                                break;
                        case ':':
                                printf("%s %s %s\n", "Флаг", optcur, "требует аргумент!");
                                usage(2);
                        case '?':
                                printf("%s %s\n", "Неизвестный флаг", optcur);
                                usage(2);
                        /*default:
                                usage(2);
                        */
                }
Компилим, запускаем:
root# ./a.out -h
-i, --input-file    Файл, который будет использоваться для ввода
-o, --output-file   Файл, который будет использоваться для вывода
-s, --word-start    Позиция слова
-l, --word-length   Длина слова
-h, --help          Показать это справочное сообщение
-v, --version       Показать текущую версию
root# ./a.out --help
root#
т.е. никакой ошибки не выдаётся, но и не выдаётся справочное сообщение - где ошибся?
    
      Ответ на:
      
          комментарий
        от ananas 
  
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум [C] Параметры, Case (2012)
 - Форум Xlib. С ошибками не валится, но не работает. (2012)
 - Форум Помогите с алгоритмом (2005)
 - Форум GETOPT_HELP_CHAR (2006)
 - Форум Помогите реализовать блочный ввод- вывод. (2011)
 
- Форум «Ненормальное» сравнение переменной shn с единицей. (2010)
 - Форум bash оптимизация изображений (2019)
 - Форум Утилита для изменения аптайма (2008)
 - Форум IPC не компилируется (2006)
 - Форум bindfs и все-все-все (2022)