운영체제(OS)에게 특정 작업을 수행하도록 지시하는 실행 명령을 커맨드(command)라고 합니다. 이러한 명령은 운영체제의 명령 프롬프트에서 입력되며, 명령과 함께 전달되는 값들을 명령줄 인수(command line arguments)라고 부릅니다.
명령줄 인수의 두 가지 핵심 요소
C 언어에서 명령줄 인수와 관련된 주요 요소는 다음과 같습니다.
- argc (argument count) — 명령 프롬프트에서 전달된 인수의 총 개수를 저장합니다.
- argv (argument vector) — 각 인수의 이름을 담고 있는 문자열 배열을 가리키는 포인터입니다.
예시로 이해하기
c:\> sample.exe hello how are you
위 명령에서 인수는 다음과 같이 구성됩니다.
- argc = 5
- argv[0] = sample.exe (프로그램 이름)
- argv[1] = hello
- argv[2] = how
- argv[3] = are
- argv[4] = you
여기서 주목할 점은 argv[0]에는 항상 프로그램 자신의 이름이 저장된다는 것입니다. 따라서 실제 사용자가 입력한 인수는 argv[1]부터 시작됩니다.
명령줄 인수를 활용한 C 프로그램 예제
다음은 명령줄 인수를 받아 출력하는 C 프로그램입니다.
#include<stdio.h>
main(int argc, char *argv[]) {
int i;
clrscr();
printf("no. of arguments at command p = %d", argc);
printf("arguments given at prompt are \n");
for (i = 1; i < argc; i++)
printf("%s\n", argv[i]);
getch();
}코드 설명
main(int argc, char *argv[])— main 함수가 명령줄 인수를 받을 수 있도록 매개변수를 선언합니다.printf("%d", argc)— 전달된 인수의 총 개수를 화면에 출력합니다.for (i = 1; i < argc; i++)— 반복문을 통해 argv[1]부터 마지막 인수까지 하나씩 출력합니다.
실행 방법 및 결과
명령줄 인수와 함께 C 프로그램을 실행하려면 다음 순서를 따릅니다.
- 프로그램을 컴파일합니다.
- 컴파일된 프로그램을 실행합니다.
- 명령 프롬프트로 이동하여 아래와 같이 인수를 입력합니다.
c:\> sample.exe hello how are you No. of arguments given at prompt is = 5 Arguments given at command prompt are: hello how are you
정리
명령줄 인수를 활용하면 프로그램 실행 시점에 외부에서 값을 전달할 수 있어, 파일 경로 지정이나 실행 옵션 설정 등 다양한 상황에서 유용하게 활용됩니다. argc로 인수의 개수를 확인하고, argv 배열로 각 인수의 문자열 값에 접근하는 것이 C 언어 명령줄 인수 처리의 기본 원리입니다.