mva 22.02.2013 10:39 N900

Glibc — кусок фекалий! Если юзаешь getopt_long и optional_argument, то есть такая вот недокументированная штука:
[вводные данные: --user, -u — с опциональным аргументом, --file, -f — с обязательным]

mva@note ttt % ./a.out --user s
(null)
mva@note ttt % ./a.out --user=s
s
mva@note ttt % ./a.out -u s
(null)
mva@note ttt % ./a.out -us
s
mva@note ttt % ./a.out --file s
s
mva@note ttt % ./a.out --file=s
s
mva@note ttt % ./a.out -fs
s
mva@note ttt % ./a.out -f s
s

P.S. Дедфуд с криками "сишечка говно, viva la C++!" может сразу проходить мимо. Иначе его список истеричек пополнится ещё и мной (ибо сам он отправится в соответствующий список у меня).

1. 0xd34df00d 22.02.2013 10:42 Azoth_primary

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

2. part1zano 22.02.2013 10:44 mcabber.4b9474ee

А зачем нужен getopt_long? I mean, он чем-то отличается от просто getopt?

3. mvapart1zano /2 22.02.2013 10:45 N900

например тем, что соотносит длинные и короткие опции, не? :)

4. part1zanomva /3 22.02.2013 10:48 mcabber.4b9474ee

(предрекаю потоки говн) В питоне обычный getopt умеет вот так:
try:
options, operands = getopt.getopt(argv[1:], 't:a:c:d:hl:', ['type=', 'address=', 'device=', 'config=', 'help', 'level='])
except getopt.GetoptError, why:
print '%s: %s' % (argv[0], why)
print usage(argv)
exit(0)

for name, value in options:
if name in ['-t', '--type']:
data['type'] = value
elif name in ['-a', '--address']:
data['address'] = value
elif name in ['-d', '--device']:
data['device'] = value
elif name in ['-l', '--level']:
data['level'] = value
elif name in ['-c', '--config']:
data['config'] = value
elif name in ['-h', '--help']:
print usage(argv)
exit(0)

5. 0xd34df00dpart1zano /4 22.02.2013 10:49 Azoth_primary

А boost.program_options ваще заебись.

6. part1zanomva /3 22.02.2013 10:49 mcabber.4b9474ee

Или я не понял, что значит "соотносит длинное с коротким". Что такое длинный и чем он отличается от короткого, ясно. Неясно, как их соотносить

7. part1zano0xd34df00d /5 22.02.2013 10:50 mcabber.4b9474ee

getopt лучше, потому как он есть везде. Буст нормально хотя бы в общих чертах знают два человека на планете, потому не нужен.

8. part1zano 22.02.2013 10:54 mcabber.4b9474ee

Что, слишком толсто? :(

9. 0xd34df00dpart1zano /7 22.02.2013 11:10 Azoth_primary

Ппц ты недооцениваешь число бустоебов. Олсо, буст норм и няша, если всякое сибыдло его ниасилило — сибыдло не нужно.

10. part1zano0xd34df00d /9 22.02.2013 11:14 mcabber.4b9474ee

"бустоёбы" != "знающие буст". Хули тут говорить, если даже об отсутствии в C массивов как таковых знают хорошо если 10% сиёбов? Плюсы при таком раскладе не знает толком никто

Do you really want to delete ?