나는 명령 줄 인수를 구문 분석하는 C++ 프로그램에서 getopt에를 사용하는 것을 시도하고있다. 인수가 -d XXX 있으며, XXX와 -s -? - - 캡처하는 데 문제가 있습니까? 인자로 표준 사용법 메시지를 출력하고 싶습니다.getopt - 캡처 '?'
while ((c = getopt (argc, argv, "?d:s:")) != -1) {
switch (c) {
case 'd':
...do stuff
break;
case 's':
... do stuff
break;
case '?':
// From example on GNU page, seems to capture -d, -s when no args provided.
// Gets here when -d or -s provided, but no arguments for these options.
default:
// shut down
}
시도해 볼 때 '-?' 옵션을 선택하십시오. '트릭을 잡는 특별한 방법이 있습니까?' 그 자체로? getopt에 올바른 패턴을 제공 했습니까 (즉, '? d : s :') 현재 C는 '?'로 설정됩니다. 유효하지 않은 옵션이 제공 될 때마다 '?' 명령 행에 제공되지 않습니다.
감사합니다.
'getopt '가'?'를 특별한 값으로 사용한다는 사실은 도움을 표시하기 위해 * 사용하지 말아야한다는 것을 당신에게 공짜로 준다. 그것이'-h'와'--help'가있는 곳입니다. 그것은 당신 자신의 일을하는 대신에 이러한 관행을 고수해야합니다. –