main 함수의 argument

#include <stdio.h>

int main(int argc, char* argv [])
{
    printf("num_of_param: %d, program_name: %s", argc, argv[0]);
}

참고자료

프로그램을 실행할 때 인자를 받아와서 프로그램에서 사용할 수 있다. scanf로 받아오는 것으로 짜려고 했더니 bash script 로 여러 번 실행할 수가 없어서 다시 써볼까 싶어 찾아봤는데, 하도 오래 전에 써본 터라 기억이 제대로 나지 않았다. 공부한 김에 메모하는 것으로.

위의 프로그램을 컴파일하고 아무런 인자도 넣지 않은 채 실행하면 다음과 같은 결과를 볼 수 있다.

num_of_param: 1, program_name: ./b.out

ps. b.out은 컴파일 후 생성된 실행파일이다.

이 예제를 통해 메인함수는 기본적으로 프로그램 이름을 하나의 인자로 가진다는 것을 알 수 있다.

문제는 이렇게 받아오는 인자가 문자열이라는 것.

가장 단순한 해결방법으로는 묵직한 atoi함수를 사용하는 방법이다.

일단 실험이 급하니 이것부터 이용해서 해볼까 싶다.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

    printf("input was %d and %d", atoi(argv[1]), atoi(argv[2]) );

    return 0;

}

위 코드를 컴파일한 후 $>a.out 1 2 이렇게 실행하면 다음과 같은 결과를 볼 수 있다.

input was 1 and 2

'C and C++' 카테고리의 다른 글

Fixed Point Prototype  (0) 2016.04.09
Fixed-point in C/C++  (0) 2016.04.05
OpenMP in Macbook  (0) 2016.03.10
OpenMP  (0) 2016.03.09
C언어 최적화 기법  (0) 2016.02.05

+ Recent posts