명령행 인수(Command-line argument)

Park Sejin·2021년 7월 12일
0
post-thumbnail

명령행 인수의 전달

어떤 프로그램이 실행될 때, 실행을 위해 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 CPOSIX.1 모두 보장한다.

출처

UNIX 고급 프로그래밍 7장 - 리처드 스티븐스, 스티븐 레이고
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791185475035

0개의 댓글