80 실행 파일 옵션 사용하기
보통 콘솔(터미널, 명령 프롬프트)에서 실행하는 프로그램은 실행할 때 다양한 옵션을 지정합니다. 예를 들어 Windows에서 IP 주소를 알아내는 프로그램인 ipconfig는 실행할 때 다음과 같이 옵션을 지정할 수 있습니다.
ipconfig /all
여기서 ipconfig 뒤에 붙는 /all이 실행 파일 옵션입니다. 이번에는 C 언어에서 실행 파일 옵션을 사용하는 방법을 알아보겠습니다.
80.1 main 함수에서 실행 파일 옵션 받기
C 언어의 main 함수는 다음과 같이 실행 파일 옵션을 매개변수로 받을 수 있습니다.
- int main(int argc, char *argv[]);
먼저 option이라는 프로젝트를 만들고 main.c 파일을 추가한 뒤 다음 내용을 입력하세요.
option/option/main.c
#include <stdio.h> int main(int argc, char *argv[]) // 옵션의 개수와 옵션 문자열을 배열로 받음 { for (int i = 0; i < argc; i++) // 옵션의 개수만큼 반복 { printf("%s\n", argv[i]); // 옵션 문자열 출력 } return 0; }
Win + R을 누른 뒤 cmd.exe를 입력하여 명령 프롬프트를 실행합니다. 그리고 프로젝트 디렉터리의 Debug 디렉터리로 이동한 뒤 다음과 같이 실행합니다(c:\project\option\Debug).
c:\Users\dojang>cd c:\project\option\Debug c:\project\option\Debug>option.exe Hello C Language option.exe Hello C Language
option.exe에 Hello, C, Language이라는 옵션을 지정했습니다. 이 상태로 실행을 해보면 실행 파일 이름과 옵션이 그대로 출력됩니다.
main 함수에서 첫 번째 매개변수 argc는 옵션의 개수이며 argv는 옵션 문자열의 배열입니다.
int main(int argc, char *argv[])
다음과 같이 반복문을 사용하여 옵션 개수만큼 반복하면서 argv를 순서대로 출력했기 때문에 실행할 때 지정한 모든 옵션이 출력됩니다.
for (int i = 0; i < argc; i++) // 옵션의 개수만큼 반복 { printf("%s\n", argv[i]); // 옵션 문자열 출력 }
여기서 argv에 저장되는 옵션의 내용은 다음과 같습니다.
인덱스 | argv |
---|---|
0 | 실행 파일 이름으로 실행했다면 실행 파일. 예) option.exe 실행 파일 경로로 실행했다면 실행 파일 경로 예) c:\project\option\Debug\option.exe |
1 | 첫 번째 옵션 |
2 | 두 번째 옵션 |
… | … |
n | n 번째 옵션 |
옵션은 공백으로 구분하며 다음과 같이 " " (큰따옴표)로 감싸주면 공백도 사용할 수 있습니다.
c:\project\option\Debug>option.exe "Hello C Language" 1234 option.exe Hello C Language 1234
option.exe "Hello C Language" 1234를 실행하면 다음과 같은 모양이 됩니다.
지금까지 실행 파일 옵션을 사용하는 방법을 배웠습니다. 이 부분은 자주 사용하지 않으므로 나중에 필요할 때마다 찾아보면 됩니다.