어떤 프로그램이 실행될 때, 실행을 위해 exec
를 호출한 프로세스가 명령행 인수들을 그 프로그램에 전달한다.
유닉스 시스템의 셸에서 프로그램을 실행할 때 다음과 같은 일이 일어난다.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
printf("argv[%d]: %s\n", i, argv[i]);
exit(0);
}
다음은 위 코드를 컴파일해서 실행한 결과이다.
$ ./a.out arg1 TEST foo ==> a.out 프로그램 실행
argv[0] = ./a.out ==> 프로그램 명
argv[1] = arg1 ==> 첫 번째 명령행 인수
argv[2] = TEST ==> 두 번째 명령행 인수
argv[3] = foo ==> 세 번째 명령행 인수
argv[argc]
가 널 포인터임은 ISO C와 POSIX.1 모두 보장한다.
UNIX 고급 프로그래밍 7장 - 리처드 스티븐스, 스티븐 레이고
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791185475035