glibc: getopt()

glibc: getopt()
이 물건 은 비교적 유용 하 다.
앞으로 이 걸 로 직접 읽 어도 돼 요.
#include
#include
int main(int argc, char * argv[])
{
    int aflag=0, bflag=0, cflag=0;
    int ch;
    while ((ch = getopt(argc, argv, "ab:c")) != -1)
    {
        printf("optind: %d", optind);
        switch (ch) {
        case 'a':
            printf("HAVE option: -a");
            aflag = 1;
            break;
        case 'b':
            printf("HAVE option: -b");
            bflag = 1;
            printf("The argument of -b is %s", optarg);
            break;
        case 'c':
            printf("HAVE option: -c");
            cflag = 1;
            break;
        case '?':
            printf("Unknown option: %c",(char)optopt);
            break;
        }
    }
}
int getopt( int argc, char *const argv[], const char *optstring );
명령 매개 변수의 수량 argc, 이 매개 변 수 를 가리 키 는 배열 argv 과 옵션 문자열 optstring 을 지정 한 후 getopt()첫 번 째 옵션 을 되 돌려 주 고 전역 변 수 를 설정 합 니 다. 같은 매개 변 수 를 사용 하여 이 함 수 를 다시 호출 할 때 다음 옵션 을 되 돌려 주 고 전역 변 수 를 설정 합 니 다. 인식 되 는 옵션 이 없 으 면 되 돌아 갑 니 다 -1. 이 작업 은 완 료 됩 니 다.getopt() 설정 한 전역 변 수 는 다음 과 같 습 니 다.
  • optarg - 현재 옵션 매개 변수 (있 으 면) 를 가리 키 는 지침 입 니 다.
  • optind - 재 호출 getopt() 시의 다음 argv 포인터 색인 입 니 다.
  • optopt - 마지막 으로 알려 진 옵션 입 니 다.
  •  ./getopt -a -d -b foooptind: 2HAVE option: -a./getopt: invalid option -- doptind: 3Unknown option: doptind: 5HAVE option: -bThe argument of -b is foo

    좋은 웹페이지 즐겨찾기