관리 메뉴

Value Creator의 IT(프로그래밍 / 전자제품)

argc, argv의 뜻은? 본문

1. 프로그래밍/5) C++

argc, argv의 뜻은?

valuecreatort 2019. 10. 28. 18:39
반응형

 가장 완전한 main문은

main (int argc, char* argv[], char* env[]) 의 형식을 가지며 뒤에서부터 생략이 가능하다.

 

argc - argument count

argv - argument value

env - environmental (variable?)

먼저 대충 이런 뜻으로 생각하면 의미가 잘 맞아 떨어지는 듯 하다.

 

각각의 역할을 알아보면

 

argc

프로그램을 시작했을 때 전해지는 인자의 갯수.

함수 호출시에 인자를 넘기는 것 처럼 프로그램을 시작할 때 인자를 넘길 수 있다.

첫번째 인수는 실행파일의 경로로 고정되어 있어서 인자가 하나도 전달되지 않았을때의 값이 1이다.

 

argv

프로그램이 시작되었을때 넘겨받은 인자.

데이터 타입에서 알 수 있듯이 모든 정보를 문자열로 처리한다.

앞에서 언급했듯이 argv[0]는 파일의 경로를 값으로 갖고 argv[1]부터 차례로 인자들을 갖는다.

 

env

운영체제의 환경변수를 갖는다.

실행되는 환경을 제공한다는 의도로 만들어졌으나 실제로는 잘 쓰이지 않는다고 한다.

 

ex)

더하기를 수행하는 add라는 실행파일이 있다고 가정

 

C:~~add 1 + 4 를 실행하면

 

argc = 4 

argv[0] = C:~~add.exe

argv[1] = 1

argv[2] = +

argv[3] = 4

 

가 되는것이다.

 

가장 간단한 형식을 가질때 argc값이 4이므로 argc가 4미만 이라면 완전한 식을 요구하는

에러 메시지를 출력하는 것도 가능 할 것이다.

 

반응형
Comments