[함수정의]

int getopt(int argc, char * const argv[], const char *optstring);

1. argc, argv : main 함수 argc, argv
2. optstring : 옵션 스트링

[예제]

#include <stdio.h>
#include <unistd.h> // for getopt()

int main(int argc, char * const * argv)
{
    int flag_a = 0, flag_b = 0, flag_c = 0;
    int c; // option
    char str[100] = {0,};
	
    while( (c = getopt(argc, argv, "abc:")) != -1) 
	{
        // -1 means getopt() parse all options
        switch(c) 
		{
            case 'a' : 
                flag_a=1;
                break;
            case 'b' : 
                flag_b=1;
                break;
            case 'c' : 
                flag_c=1;
                memcpy(str, optarg, sizeof(optarg));
                break;
            case '?' :
                printf("Unknown flag  %c", optopt);
                break;
        }
    }
	
    if(flag_a) { printf("flag a is ON \n"); }
    if(flag_b) { printf("flag b is ON \n"); }
    if(flag_c) { printf("flag c is ON \n"); 
                 printf("str : %s \n", str);}
    return 0;
}
- 옵션에 인자를 넣고 싶은 경우 옵션뒤에 :을 붙인다.(위의 옵션 c처럼)

'C 언어' 카테고리의 다른 글

포인터 배열 vs 배열 포인터 (응용)  (0) 2022.07.27
포인터 배열 vs 배열 포인터  (0) 2022.07.27
함수 포인터  (0) 2022.07.27
%*.*s  (0) 2022.07.27
EOF와 feof  (0) 2022.07.27

+ Recent posts