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.exeHello, 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에 저장되는 옵션의 내용은 다음과 같습니다.

표 80‑1 인덱스별 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를 실행하면 다음과 같은 모양이 됩니다.

그림 80‑1 실행 파일 옵션

지금까지 실행 파일 옵션을 사용하는 방법을 배웠습니다. 이 부분은 자주 사용하지 않으므로 나중에 필요할 때마다 찾아보면 됩니다.