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 |