티스토리 뷰
반응형
- getopt() 함수는 콘솔 기반의 프로그램(어플리케이션)을 제작하는데 있어 옵션 값(인자, 파라미터)을 받는데 유용한 함수다.
- 사실 '-a' 나 '--version'과 같은 옵션을 argc, argv로 처리할 수도 있겠지만 이를 직접 처리하는 것은 귀찮은 작업이다. 이를 위해 getopt 함수가 제공된다.
- getopt() 함수는 stdio.h 와 unistd.h 모두에 정의되어있다. 두 헤더 파일에 정의된 함수의 차이는 딱히 없는 듯 하다.
hanopt.c
//140924 Source by YoWu (uyu423@gmail.com) #include "stdio.h" int main(int argc, char *argv[]) { int num; extern char *optarg; extern int optind; num = getopt(argc, argv, "au:h"); switch(num) { case 'a': printf("Welcome to Unix System Programming World!\n"); break; case 'u': printf("Nice to meet %s\n", optarg); break; case 'h': default: printf("Option : \n"); printf("\t-a : print \"Welcome to Unix System Programming World!\"\n"); printf("\t-u [String] : print \"Nice to meet [String]\"\n"); printf("\t-h : print Help page\n"); break; } return 0; }
- getopt는 int 형의 반환형을 가지며, 세번째 파라미터(인자)에 포함된 문자를 받는다면 해당 문자의 값을 반환한다.
- -u 옵션 처럼 뒤에 추가 인자를 받고 싶다면 getopt 함수를 사용할 때 세번째 파라미터에서 문자+콜론(:)으로 추가해줘야 한다.
- 위 예제는 한빛미디어 유닉스 시스템 프로그래밍 1장 연습문제 9번에 해당한다.
반응형
'컴퓨터공학' 카테고리의 다른 글
[UNIX / LINUX] fread, fwrite 함수 원형, 예제 (0) | 2014.10.05 |
---|---|
[UNIX / LINUX] 저수준 파일 입출력(open, write, read) 예제 (0) | 2014.10.05 |
시스템 호출(System Call)과 라이브러리 함수(Library Function) 차이 (0) | 2014.09.24 |
[알고리즘 연습문제] Letter Bank (0) | 2014.09.22 |
재귀함수(Recursion)에 익숙해지려면... (1) | 2014.09.19 |
기가 막히고 코가 막히는 피보나치 수열 재귀함수 (0) | 2014.09.18 |
[문제해결기법] 게으른 거미 (fail) (0) | 2014.09.18 |