티스토리 뷰
- c getopt
1. getopt
getopt() 는 입력라인의 인자(arguments)를 분석한다. 프로그램 실행에 의해 main()함 수에서 넘겨진 argc와 argv는 인자의 수와 배열을 나타낸다.
'-' 또는 '--'를 정확히 구분을 하지않지만 '-'으로 시작되는 argv의 요소가 옵션 요소(option element)가 된다. '-'으로 시작하여 뒤에 있는 문자는 옵션문자(option characters)가 된다.
getopt() 를 반복적으로 호출하게 되면 각각의 옵션인자(option element)에서 각각의 옵션 문자(option characters)들이 성공적으로 반환된다.
[프로토타입]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <unistd.h>
int getopt(int argc, char * const argv[],
const char *optstring);
extern char *optarg;
extern int optind, opterr, optopt;
#include <getopt.h>
int getopt_long(int argc, char * const argv[],
const char *optstring,
const struct option *longopts, int *longindex);
int getopt_long_only(int argc, char * const argv[],
const char *optstring,
const struct option *longopts, int *longindex);
|
cs |
[예시]
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
|
while ((c = getopt(argc, argv, "diosa")) != -1) {
switch (c) {
case 'd':
d_mod = 1; /* debug mod on :입출력내용을 Print한다. */
printf("Info: Option -d : TCache 입.출력구조체 출력 (TCache_name Debug mode) \n");
break;
case 'i':
g_mod = 1; /* pfmTCacheInvalidate By TCache Key */
printf("Info: Option -i : TCache 1건 삭제 (Invalidate one contents in TCache_name) \n");
break;
case 'o':
g_mod = 2; /* Table 내용 Print By Table Key */
printf("Info: Option -o : TCache 1건 등록 (Load one contents in TCache_name) \n");
break;
case 's':
g_mod = 3; /* pfmTCacheGet : TCache의 내용 Print By TCache Key */
printf("Info: Option -s : TCache 1건 조회 (Get one contents in TCache_name) \n");
break;
case 'a':
g_mod = 4; /* pfmTCachePut : Table을 읽어서 TCache에 Put */
printf("Info: Option -a : TCache 일괄 등록 (Load All contents in TCache_name) \n");
break;
default:
print_usage();
return RC_ERR;
}
}
|
cs |
- 리눅스 getopt
pfm5c_nh@PSDEV:/home/pfm5c_nh/proframe5.0/package/proframe/pfm/inc] man -k getopt
getopt (1) - 명령행 옵션 분석
getopts (1) - bash built-in 명령어들, bash(1)를 참고하라.
getopt (3) - Parse command-line options
getopt_long (3) - Parse command-line options
getopt_long_only (3) - Parse command-line options
getopt (3p) - command option parsing
Getopt::Std (3pm) - Process single-character switches with switch clustering
Getopt::Long (3pm) - Extended processing of command line options
getopts (1p) - parse utility options
Pod::Perldoc::GetOptsOO (3pm) - Customized option parser for Pod::Perldoc
GETOPT(1) BSD General Commands Manual GETOPT(1)
NAME
getopt -- 명령행 옵션 분석
SYNOPSIS
set -- `getopt optstring $*`
DESCRIPTION
Getopt 풀그림은 쉘 스크립트 파일안에서 그 쉘 스크립트의 명령행 옵션을 처리하고자 할 때 그것을 쉽게 처리할 수 있도록 하는데 사용된다. optstring은 그 쉘 스크립트의 명령행 옵션들이다 ( getopt(3) 참조).
이때, 콜론(:)이 오면, 그 앞에 있는 옵션은 그 옵션에 대한 공백문자가 있거나 공백문자로 구분하는 인자를 가지는 옵션으로 간주한다(아래 예제 참조). 특수하게, 옵션은 해당 스크립트 자체에 대한 옵션은 끝이
났음을 알리는 옵션이다.
Getopt 풀그림은 다음에 오는 내용들은 그 스크립트의 옵션으로 간주하지 않고, 스크립트의 명령행 인자($1 $2 ...)로 간주해서 필요하다면, 그 인자에서 사용되는 옵션으로 처리할 수도 있다.
이해를 쉽게 하기 위해 아래 예제를 살펴 보자.
'IT > Linux command' 카테고리의 다른 글
리눅스 dumpe2fs 옵션 및 간단정리(관련 명령어) (0) | 2021.10.30 |
---|---|
방화벽문제 해결 (0) | 2021.06.16 |
공유메모리/세마포어/뮤텍스 (0) | 2020.06.03 |
[Secure CRT] 화면 클리어 단축키/초간단 (1) | 2020.03.24 |
[LINUX]Vi 사용시 나타나는 에러/E576: viminfo (0) | 2020.03.23 |