티스토리 뷰

컴퓨터공학

getopt() 함수 예제

Yowu 2014. 9. 24. 07:45
반응형



  • 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번에 해당한다.


유닉스 시스템 프로그래밍

저자
이종원 지음
출판사
한빛미디어 | 2010-01-07 출간
카테고리
컴퓨터/IT
책소개
아, 이 함수는 이럴 때 쓰는구나! 예제로 배우는 시스템 호출 ...
가격비교



반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

댓글쓰기 폼
«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
글 보관함
Total
3,248,779
Today
581
Yesterday
500