프로그래밍을 하다보면 외부 프로램으로 파라미터값(어떠한 값을 전달)을 전달 해야 하는 경우가 있는데 어떤 개념일까!
사용 언어마다 조금씩 차이는 있지만 대부분이
명령 프롬프트에서 프로그램을 실행하는 방식으로 실행을 시킨다.
예를 들어 C드라이브의 Game.exe 파일을 명령 프롬프트에서 실행 시킬 경우
>C:\Game.exe
이렇게 명령어를 치면 해당 프로그램이 실행된다.
그런데 해당 프로그램을 실행 시킬 때 전달해야 할 값들이 있을 경우!
>C:\Game.exe 10 20 30
이 경우는 Game.exe를 실행하면서 10, 20, 30이라는 값을 전달하라는 의미가 된다.
>C:\Program Files\Game.exe
이 경우는 Program Files폴더의 Game.exe파일을 실행하는 명령어 인데 실제로 입력해보면 실행이 되지 않는다.
파일이 없어서가 아니라 Program Files 경로를 입력 시에 공백문자가 있기 때문에
명령 프롬프트에서는 C:\Program 까지 명령어로 인식하고 File\Game.exe는 파라미터로 인식해버린다.
여기에 대한 해결책은!?
>"C:\Program Files\Game.exe"
실행할 프로그램 경로에 대해 더블 쿼테이션으로 감싸준다.
이렇게 되면 경로 내 뿐만 아니라 파일의 공백 문자도 인식하여 실행해준다.
그렇다면 여기에 파라미터까지 전달 할 때는!?
>"C:\Program Files\Game.exe" 10 20 30
더블 쿼테이션은 실행 경로까지만 입력. 그 이후의 공백은 파라미터로 인식!
따라서 각 언어에 맞춰 외부 프로그램을 실행시 파라미터 값을 전달하기 위해서는
명령 프롬프트에서 파라미터를 전달하듯이 경로 값에 파라미터 값을 같이 넣어
전달해 주면 된다.
각 언어 라이브러리에 따라 파라미터를 전달해주는 변수가 있으면 그걸 사용 하고
없으면 위의 개념을 인지하여 코딩하면 좀 더 쉽게 외부 프로그램 실행에 도움이 될 듯 하다.
댓글 없음 :
댓글 쓰기