본문 바로가기

Programming/C

C 언어 | 명령행 인자

✔ 학습목표

명령행 인자를 받는 프로그램을 c로 작성할 수 있다.

 

명령행 인자

명령행 인자(command line arguments)는 사용자가 명령행에서 명령을 실행할 때 해당 명령과 함께 지정하는 인자를 의미한다.  명령행 인자는 자동으로 프로그램의 main함수에 전달된다.

 

이제껏 당연하게 int main(void)라 써왔던 main 함수를 생각해볼 때다. main도 그 형태를 보면 하나의 함수다. 즉 사용자 정의 함수처럼 입력값과 출력 값을 가질 수 있다는 것이다.

 

#include <cs50.h>
#include <stdio.h>

int main(int argc, string argv[])
{
    if (argc == 2)
    {
        printf("hello, %s\n", argv[1]);
    }
    else
    {
        printf("hello, world\n");
    }
}

 

위 예제를 보자. 입력값에 'int argc, string argv[]'이 들어간 프로그램이다. 첫 번째 변수 argc는 main함수가 받게 될 입력의 개수(int)이다. 그리고 argv[]는 그 입력이 포함되어 있는 배열이다. 프로그램을 명령 행에서 실행하므로, 입력은 문자열(string)로 주어진다.

 

argv[0]는 기본적으로 프로그램의 이름을 저장한다. 만약 여기에 하나의 입력이 더 추가된다면 argv[1]에 저장될 것이다. 예를 들어 위 프로그램을 './argc'로 실행하면 "hello, world"가 출력된다. 명령행 인자에 주어진 값이 하나밖에 없기 때문이다. 하지만 './argc David'로 실행해보면 "hello, David"라는 값이 출력된다. 명령행 인자에 David 값이 추가되었고, 따라서 argc는 2, argv[1]는 'David'가 되기 때문이다.

 

 

* argc는 argument count를, argv는 argument vector를 뜻한다.

 

 

 

 


 

이 글은 네이버 부스트 코스 David J. Malan(데이비드 J. 말란) 교수님의 모두를 위한 컴퓨터 과학(CS50 2019) 강의를 수강하고 작성한 글입니다. 본 강좌 내 실습에서는 CS50 Sandbox를 사용합니다.

 

 

모두를 위한 컴퓨터 과학 (CS50 2019)

부스트코스 무료 강의

www.boostcourse.org