Jump to content

    
Sign in to follow this  
haker_fox

Библиотека для парсинга (argc, argv[])

Recommended Posts

Коллеги, с наступающим Новым Годом!!! Порекомендуйте хорошую библиотеку, лёгкую, но "серьёзную" для парсинга параметров командной строки. Желательно в стиле "nix" систем: поддержка коротких и длинных аргументов, комбинация коротких вместе и т.п. Библиотека желательно должна сама парсить, например, числовые параметры. Я перерыл github, но мне попались какие-то скудные примеры библиотек. Буду признателен за возможные варианты. Да, библиотечка должна быть нетяжёлой (есть планы компилить её для cortex-m0 с 64 кБ флэш и 8 кБ озу).

Share this post


Link to post
Share on other sites

И да!!! Поймите правильно, я знаю, что можно самому написать... но время не хочется тратить на то, что за несколько десятилетий другие могли сделать так качественно, что оно блестит как у кота... шерсть!!!)))))

Share this post


Link to post
Share on other sites
2 hours ago, one_eight_seven said:

Предлагаете getopt взять? Я смотрел её, она мне показалось тяжёлой, для Cortex-M0, по-крайней мере.

Share this post


Link to post
Share on other sites

Если не хочется по какой-то причине использовать getopt из <unistd.h>, на гитхабе есть много аналогов, в том числе максимально лёгких. Можно выбрать подходящий под вашу задачу: https://github.com/search?l=C&amp;q=getopt&amp;type=Repositories

Share this post


Link to post
Share on other sites
37 minutes ago, arhiv6 said:

Если не хочется по какой-то причине использовать getopt из <unistd.h>, на гитхабе есть много аналогов, в том числе максимально лёгких. Можно выбрать подходящий под вашу задачу: https://github.com/search?l=C&amp;q=getopt&amp;type=Repositories

Скажем так... мне нужна рекомендация конкретной библиотеки или нескольких со словами: "использовал в 3000 году до н.э., впечатления такие-то, ограничения такие-то".

То, что есть getopt я уже понял) Если других рекомендация не будет, буду разбираться с ней, или с одной из вашего списка, по рейтингу.

Share this post


Link to post
Share on other sites
On 12/31/2018 at 1:34 PM, haker_fox said:

То, что есть getopt я уже понял) 

getopt - это стандарт, POSIX.

А все остальные "скажем так" и "советы от доброжелателей" - это будут пионэрские задрочки. 

В дополнение к getopt есть ещё getopt_long - это уже не стандарт POSIX, расширение, работающее с длинными и короткими опциями.

 

Share this post


Link to post
Share on other sites
On 1/12/2019 at 1:36 AM, Olej said:

это будут пионэрские задрочки. 

Вот который раз перечитываю ваше сообщение, и не могу понять смысл. Что вы предлагаете? Брать исходники posix'овского getopt'a и тащить в embedded?

Share this post


Link to post
Share on other sites
1 час назад, haker_fox сказал:

Вот который раз перечитываю ваше сообщение, и не могу понять смысл. Что вы предлагаете? Брать исходники posix'овского getopt'a и тащить в embedded?

А я который раз перечитываю Ваше и не могу понять: какую такую командную строку нужно парсить на cortex-m0 с 64 кБ флэш и 8 кБ озу??? Откуда она взялась на таком МК? Вы туда MS-DOS портировали? :buba:

Share this post


Link to post
Share on other sites
9 minutes ago, jcxz said:

Откуда она взялась на таком МК?

А разве на таком МК нельзя поднять интерпретатор команд, чтобы пользование консолью доставляло удовольствие?:biggrin: И вводить "красивые команды" вида start --daq --time_resolution 0.001 --time 1, а не использовать всякие команды в виде одной циферки и буковки.

Share this post


Link to post
Share on other sites
12 минут назад, haker_fox сказал:

А разве на таком МК нельзя поднять интерпретатор команд, чтобы пользование консолью доставляло удовольствие?:biggrin: И вводить "красивые команды" вида start --daq --time_resolution 0.001 --time 1, а не использовать всякие команды в виде одной циферки и буковки.

Можно, только зачем? Если хочется давать устройству какие-то команды, то зачем на их синтаксис накладывать вынужденные ограничения, вызываемые синтаксисом командной строки больших ОС?

Разбить строку на лексемы по пробелам (и другим знакам) - это так сложно, что нужно привлекать сторонние библиотеки, которые тянут ещё кучу другого функционала (хвостов), и потом героически бороться с этими хвостами???  :wacko2:

 Если нужен самокат, то нужно сделать самокат. А не брать мотоцикл и напильником удалять из него лишнее.  :dash2:

Share this post


Link to post
Share on other sites
7 hours ago, jcxz said:

А не брать мотоцикл и напильником удалять из него лишнее

Поэтому и задал первоначальный вопрос, в надежде не сделать самокат, а взять готовый. Не всё же самому делать, надо, чтобы и другие на тебя поработали))))

Share this post


Link to post
Share on other sites
13 hours ago, haker_fox said:

А разве на таком МК нельзя поднять интерпретатор команд, чтобы пользование консолью доставляло удовольствие?:biggrin: И вводить "красивые команды" вида start --daq --time_resolution 0.001 --time 1, а не использовать всякие команды в виде одной циферки и буковки.

Так это называется Shell, а не командная строка.
Shell - это строчный редактор, с памятью, автоподстановкой, интерпретатором и проч. 
Shell есть в каждой серьезной RTOS. 
Но я, кстати, Shell не люблю и не использую хоть он есть у меня в куче вариантов, нет должной интерактивности и интуитивности.
Его реально делают под юзеров выросших в линуксе и не знающих что такое удобства цивилизации.
    

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this