삽질의 현장/- 윈도우 시스템

#015_WIndow_System_명령행 인자

shovelman 2015. 9. 19. 22:37


안녕하세요 삽잡이 입니다.

이번 시간에는 명령행 인자에 대해서 알아보려고 합니다.



자... 우리가 C언어 공부를 할 때 한번쯤을 봤을 코드입니다.


위 코드의 int main(int argc, char**argv)


이 시그니처는.. main 함수의 원형을 나타냅니다.

그리고 많이들 들어보셨겠지만, 

'프로그램을 실행할 때 기존에 설정한 값을 넣어서 프로그램을 실행 시킬 수 있다'라는 

설명들을 많이들 보셨을 것입니다.


그냥 아무 것도 건들지 않은 상태에서 해당 프로그램을 실행 시키게 되면,

프로그램명이 출력되는 것을 확인하실 수 있습니다.


그런데 위에서 설명한 '기존에 설정한 값' 이란,

우리는 프로그램 인수라고 할 수 있습니다.


즉, main함수에 프로그램 인수를 받아 실행시킬 수 있다는 것입니다.

비주얼 프로그램에서 [프로젝트] > [속성] > [구성 속석] > [디버깅]

을 살펴 보신다면, 이와 같이 '명령 인수' 란을 확인할 수 있습니다.



이 명령 인수는 Main 함수의 매개변수로 입력 받을 수 있도록 설정할 수 있습니다.


int main(int argc, char**argv)

이와 같이 main 함수에 있는 두개의 매개변수를 설명하자면,

argc는 인자 개수, argv는 인자값이 저장되어 있는 문자 형식의 '포인터 배열'을 나타냅니다.



명령인수에 이처럼 세개의 명령행 인자를 설정하게 된다면,

argc에는 프로그램 명을 포함한 4의 값이, argv에는 4개의 문자열을 담고 있게 됩니다.


Main 함수에서 첫번째로 담고있는 문자열 주소는 바로, 프로그램 명입니다.

따라서 argv[0] 에는 프로그램명,

[1]에는 Sap [2]에는 Sapzape, [3]프로그래밍

이와 같이 인수로 저장하게 됩니다.


이런 것은 왜 하게 되는 것일까요? 우리 한번 탐색기를 실행해보도록 할까요?



그렇다면, 



이와같은 화면이 실행됩니다.

그렇다면, 탐색기의 속성을 들어가보도록 해봅시다.

그리고, '대상' 란의 프로세스 명 뒤에 'd:'를 써보고 저장해보세요...



그리고 탐색기를 실행해본다면, D드라이브가 실행되는 것을 확인하실 수 있습니다.


명령행 인자는 

프로그램을 실행할 때 사용자가 지시함으로 실행되기를 원할 때 사용합니다.

즉, 이 것이 명령행 인자의 기능이라는 것입니다.


그냥 그런게 있다고 알고 넘어가자구요~~


이상 삽잡이였습니다!