Перейти к содержанию
    

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, one_eight_seven said:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 minutes ago, arhiv6 said:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/31/2018 at 1:34 PM, haker_fox said:

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

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/12/2019 at 1:36 AM, Olej said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, haker_fox сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, jcxz said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, haker_fox сказал:

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, jcxz said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, jcxz said:

Можно, только зачем?

Ответ прост: хочется!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 hours ago, haker_fox said:

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...