Итак, я знаю, что вы можете использовать getopt()
, чтобы найти аргументы параметров, но как насчет других вещей в массиве argv, таких как цели? Есть ли способ сделать это, используя getopt()
? Просматривая страницу руководства, и я ничего не вижу ... может быть, мне это не хватает.Использование getopt() для поиска целей
ответ
Для этого используйте optarg
(это строка, используйте для этого текст sscanf
).
Цитируя man 3 getopt
:
optstring is a string containing the legitimate option characters. If such a character is followed by a colon, the option requires an argument, so getopt()
places a pointer to the following text in the same argv-element, or the text of the following argv-element, in optarg. Two colons mean an option takes an
optional arg; if there is text in the current argv-element (i.e., in the same word as the option name itself, for example, "-oarg"), then it is returned in
optarg, otherwise optarg is set to zero. This is a GNU extension. If optstring contains W followed by a semicolon, then -W foo is treated as the long
option --foo. (The -W option is reserved by POSIX.2 for implementation extensions.) This behavior is a GNU extension, not available with libraries before
glibc 2.
Если у вас есть дополнительные аргументы (меню cp -l file1 file2
) они сохраняются в argv
на последних позициях, начиная с optind
.
PS: Также есть пример в конце страницы man
.
вправо, но я не уверен, как сказать getopt(), чтобы искать эти аргументы. Прямо сейчас я вызываю getopt следующим образом: 'getopt (argc, argv," f: j: ")' поэтому я говорю ему сначала искать параметр '-f', и он возвращает аргумент, тогда он делает то же самое для опции '-j'. Но как насчет того, если у меня есть дополнительная строка, которая также должна быть проанализирована, которая перед этим не имеет спецификатора '-f' или' -j'? – user2079802
Он останется в 'argv', и вы можете прочитать его оттуда. Все несоответствующие опции остаются там. –
- 1. Правильное использование getopt
- 2. Использование флагов Getopt :: Long
- 3. Использование модели для нескольких целей
- 4. Использование Mercurial для целей отладки
- 5. Использование WAMP для веб-целей?
- 6. Использование GCMS для коммерческих целей
- 7. Удалить параметры поиска в getopt из argv
- 8. Использование дисплея: таблица для макета/презентационных целей?
- 9. Использование интеллектуальных указателей для целей наблюдения
- 10. Использование цикла для нескольких целей в wikitude
- 11. Использование полиморфного кода для законных целей?
- 12. Oracle - использование SQL% ROWCOUNT для целей аудита
- 13. Использование Kafka вместо Redis для целей очереди
- 14. Использование флагов бит файла для других целей
- 15. Использование ASP.NET MasterPage для целей авторизации
- 16. Getopt :: Declare vs Getopt :: Long
- 17. Библиотека GetOpt для C#
- 18. getopt для синтаксиса python
- 19. Использование getopt, когда параметры имеют параметры C++
- 20. Webpack: использование нескольких целей построения
- 21. Использование операторов getopt() и switch в C
- 22. Использование getopt триггеров всех случаев в одном
- 23. Использование целей псевдонима в CMake
- 24. Использование RethinkDB для «Полнотекстового поиска»
- 25. использование Getopt и foldl, переворачивать, идентификатор
- 26. Can Getopt :: Долгое использование имен переменных переменных?
- 27. Использование параметров для поиска
- 28. Использование getopt в C для аргументов командной строки
- 29. Как можно использовать нейронные сети для целей поиска транспортных средств?
- 30. Улучшить алгоритм звезды для поиска нескольких целей в лабиринте
Что такое цели в 'argv'? Возможно, рассмотрите (в Linux) функции [argp] (http://www.gnu.org/software/libc/manual/html_node/Argp.html) –
Можете ли вы уточнить, какие у вас «целевые»? –
Я объяснил в своем комментарии ниже первого ответа. – user2079802