У меня проблемы с использованием функции getopt_long () с пользовательскими аргументами argc и argv.
Я получаю аргументы в строке вместо реальных аргументов командной строки.Затем из этой строки были построены new_argc и new_argv для использования с getopt_long ().Но getopt_long () завершается неудачно при первом вызове.возвращает EOF и optarg = NULL.
string is "-c 10.30.99.41"
new_argc = 3
new_argv[0]=>./prog_name
new_argv[1]=>-c
new_argv[2]=>10.30.99.41
getopt_long работает нормально, если я передаю аргументы командной строки.Так что мои короткие и длинные варианты верны.Но если я пропущу new_argc и new_argv, то произойдет сбой.
Я уверен, что мои короткие и длинные параметры верны, а argv равен NULL.Я извиняюсь, я не могу опубликовать больше кода здесь.
Сомневаюсь, можно ли использовать getopt_long с собственными argc и argv.Я подозреваю, что он работает только с реальными argc и argv, потому что он должен ссылаться на некоторый другой код в libc, связанный с argc, argv.Есть комментарии?
option = getopt_long( new_argc, new_argv, short_options, long_options, NULL );