명령줄 옵션
- 명령줄에 나열된 인수는 두 종류로 분류
- 하나는 명령이 처리할 대상인 데이터
- 다른 하나는 명령의 동작을 지정하는데에 이용
명령줄 문자열 예
ex) gcc list0612A.c -o list0612A
=> gcc(명령어) list0612A.c(처리 대상) -o(옵션) list0612A(옵션의 인수)
옵션 지정 예
- 보통 '-h'나 '-?', '--help', '--usage' 같은 옵션
=> 간단한 도움말이나 명령의 사용법을 표시하는데 이용
- '--version' 을 지정했을 때 버전 번호를 표시하게 구현하는 것이 일반적으로 약속처럼 되어 있음
옵션 해석 |
- 프로그램에서 옵션을 해석하는 법 - 명령줄 옵션을 해석할 때는 'getopt()'와 'getopt_long()'을 사용 - 이들 함수가 표준 C 라이브러리에 포함되므로 따로 패키지를 준비할 필요는 없음 => #include <unistd.h> |
짧은 옵션 |
-'-(하이픈)'에 이어서 영문자, 숫자, 기호 단일 자로 나타내는 옵션 형식 - gcc 옵션에서 '-c' 와 '-o'가 짧은 옵션에 해당함 - '-c' 옵션은 그 자제로 완결돼 인수가 필요하지 않음 - 생성할 실행 파일의 이름을 지정하는 '-o' 옵션은 입수가 필요함 - 옵션의 인수는 옵션 문자에 바로 붙여서 지정하거나 공백으로 구별해서 지정 |
긴 옵션 |
- '--help' 처럼 '--(하이픈 두 개)'에 이어서 단어로 표현하는 옵션 형식 - 긴 옵션의 인수는 '--longopt=argument' 처럼 '=' 로 연결해 지정하는 것이 관례 |
긴 옵션 해석 예제 |
||||||||||||||
#include <getopt.h> |
||||||||||||||
- 'unistd.h' 를 포함하는 대신 'getopt.h'를 포함 - 'getopt_long()' 이 'getopt.h' 파일에 선언되었기 때문 - while 문의 조건에서 사용된 'getopt()' 함수가 'getopt_long()' 함수로 변경 - 네 번째와 다섯 번째 인수로, 새로 추가된 'long_options'와 변수 'option_index'의 포인터가 주어진다는 점에 주의
|
NULL과 0 |
- option 구조체의 변수 flag 로 NULL을 지정하면 getopt_long()의 동작이 변한다고 했음 - 온라인 메뉴얼에 있는 예제에서는 NULL 대신 0을 사용 static struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, ... {"file", 1, 0, 0}, {0, 0, 0, 0} }; - '/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h' 정의 확인 |
'프로그래밍 정리 > Ubuntu - C' 카테고리의 다른 글
[Ubuntu - 우분투 - C] 명령줄 옵션(3) - 옵션 해석 라이브러리(popt) (0) | 2015.05.16 |
---|---|
[Ubuntu - 우분투 - C] 컴파일 에러 - undefined reference to (0) | 2015.05.16 |
[Ubuntu - 우분투 - C] 명령줄 옵션(1) - 짧은 옵션(getopt) (0) | 2015.05.15 |
[Ubuntu - 우분투 - C] nm - 심볼 확인, 심볼 검색 (0) | 2015.05.15 |
[Ubuntu - 우분투 - C] your cxx compiler cmake_cxx_compiler-notfound was not found (0) | 2015.05.14 |