Size: a a a

Russian Fedora Community

2020 July 04

YS

Yaroslav Sidlovsky in Russian Fedora Community
Igor Gnatenko
есть эксперты по getopt?
это который man 3 getopt? или утилита?
источник

IG

Igor Gnatenko in Russian Fedora Community
Yaroslav Sidlovsky
это который man 3 getopt? или утилита?
да в целом одно и то же, но вообще нужна помощь с getopt(3)
источник

IG

Igor Gnatenko in Russian Fedora Community
нужно сделать чтобы можно было передавать любы параметры .. т.е. если -X foo передаётся, а в optstring не было :X:, то он бы всё равно принял этот аргумент
источник

A

Alexander in Russian Fedora Community
Igor Gnatenko
есть эксперты по getopt?
Ты про шелльный или про глибцешный?
источник

IG

Igor Gnatenko in Russian Fedora Community
Alexander
Ты про шелльный или про глибцешный?
второе
источник

A

Alexander in Russian Fedora Community
Igor Gnatenko
нужно сделать чтобы можно было передавать любы параметры .. т.е. если -X foo передаётся, а в optstring не было :X:, то он бы всё равно принял этот аргумент
А в чем в таком случае будет заключаться работа getopt?
источник

YS

Yaroslav Sidlovsky in Russian Fedora Community
Igor Gnatenko
нужно сделать чтобы можно было передавать любы параметры .. т.е. если -X foo передаётся, а в optstring не было :X:, то он бы всё равно принял этот аргумент
а через ./bin -- -X foo он его разве не сожрёт?
источник

IG

Igor Gnatenko in Russian Fedora Community
Alexander
А в чем в таком случае будет заключаться работа getopt?
опишу юзкейс, в RPM у макросов можно делать аргументы. соотв-но если есть unknown option, то rpm отказывается из принимать. хочу модифицировать таким обраном, чтобы мжно было указать что в целом все опции подходят
источник

A

Alexander in Russian Fedora Community
Igor Gnatenko
опишу юзкейс, в RPM у макросов можно делать аргументы. соотв-но если есть unknown option, то rpm отказывается из принимать. хочу модифицировать таким обраном, чтобы мжно было указать что в целом все опции подходят
А что тогда с этими опциями должен будет делать макрос?
источник

IG

Igor Gnatenko in Russian Fedora Community
Alexander
А что тогда с этими опциями должен будет делать макрос?
источник

IG

Igor Gnatenko in Russian Fedora Community
%**     all arguments (including processed flags)
источник

YS

Yaroslav Sidlovsky in Russian Fedora Community
@ignatenkobrain If  the  caller has set the global variable opterr to zero, then getopt() does not print an error message. не оно?
источник

YS

Yaroslav Sidlovsky in Russian Fedora Community
т.е. ты уже сам будешь разбираться с результатами вызова getopt
источник

IG

Igor Gnatenko in Russian Fedora Community
Yaroslav Sidlovsky
@ignatenkobrain If  the  caller has set the global variable opterr to zero, then getopt() does not print an error message. не оно?
не, там в самом RPM

        if (c == '?' || strchr(opts, c) == NULL) {
           mbErr(mb, 1, _("Unknown option %c in %s(%s)\n"),
                       (char)optopt, me->name, opts);
источник

IG

Igor Gnatenko in Russian Fedora Community
но я не хочу полностью выключить проверку
источник

A

Alexander in Russian Fedora Community
Вообще, ман говорит вот это
If getopt() does not recognize an option character, it prints an error message to stderr, stores the character in optopt, and returns '?'. The calling program may prevent the error message by setting opterr to 0.
источник

IG

Igor Gnatenko in Russian Fedora Community
только при каком-то определённом условии. я вижу, что в openSUSE используется :-:, но оно не работает в федоре (не уверен, что оно работает там тоже)
источник

YS

Yaroslav Sidlovsky in Russian Fedora Community
Alexander
Вообще, ман говорит вот это
If getopt() does not recognize an option character, it prints an error message to stderr, stores the character in optopt, and returns '?'. The calling program may prevent the error message by setting opterr to 0.
opterr=0 это отключает
источник

A

Alexander in Russian Fedora Community
Yaroslav Sidlovsky
opterr=0 это отключает
У меня про это же и написано
источник

IG

Igor Gnatenko in Russian Fedora Community
идеально, хотелось бы:

* :-x: -> можно кидать какие-угодно параметры
* :x:-> можно передавать только -x ..
источник