지금까지 getopt_long
을 사용하여 명령 행 C 프로그램의 옵션을 구문 분석했습니다.C의 인수 전후의 명령 행 옵션 처리
옵션이 아닌 인수에 부딪 힐 때 getopt_long
구문 분석을 중지 할 수 있습니까? 그렇지 않다면 C에서 이것을 처리하는 가장 좋은 방법은 무엇입니까?
git [general options] <command> [command options]
예 :
git --bare commit -a
git -p --bare status -s
-p
및 --bare
은 일반 옵션이며, 모든 명령과 함께 사용할 수 있습니다, -a
가 commit
명령에 고유 한 반면, 및 -s
특정 status
명령으로 이동하십시오.
getopt_long
을 사용하면 먼저 모든 옵션을 구문 분석하고 옵션이 아닌 인수를 처리하도록 남겨 둡니다. 내가 비 옵션 (즉, 명령)을 한 번 파싱을 중지하고 나머지 명령을 명령 특정 옵션 파서에 전달하는 것이 이상적입니다.
+1. 리눅스 프로그래머 매뉴얼 (Linux Programmer 's Manual), 즉 리눅스 맨 페이지에서 어떻게 나타나는지는 재미 있지만 "권한있는"[Glibc 매뉴얼] (http://www.gnu.org/s/libc/manual/html_node/Getopt-Long- Options.html # Getopt-Long-Options). –
고마워, 그 완벽하게 작동합니다. 나는 getopt_long 문서를 너무 오래 꼼짝 않고 바라 보았고'man getopt'에서 충분하지 못했습니다! –