2016. 4. 26. 16:17ㆍIT-개발/C및C++
Console Project로 동작하는 소스 만들었다.
아래 소스처럼 argv 로 무슨 Data가 날라 오는지 확인 보았다. 왜그랬냐고?
A.exe C:\Program Files\Canon C:\Program Files\DVDMaker
와 같이 parameter로 전달되는 string이 빈칸을 포함한체 전달되면 argument Count 가 늘어나고
argv[0] : A.exe
argv[1] : C:\Program
argv[2] : Files\Canon
argv[3] : C:\Program
argv[4] : Files\DVD Maker
처럼 온다. 그런데, 이거 우리가 원하는 건가? 아니다. 그래서 다음 처럼 호출해주면 된다. "" 문자열로 감싸서 호출!
A.exe "C:\Program Files\Canon" "C:\Program Files\DVDMaker"
근데 이렇게 호출하게 되면 하나 의심이 드는게
argv[0] : A.exe
argv[1] : "C:\Program Files\Canon"
argv[2] : "C:\Program Files\DVDMaker"
요렇게 호출하지 않을까 이다~~~ 근데~~ 걱정마시라~~
for (retvalue=0 ; retvalue < argc ; retvalue++)
WriteLog("_Test_", __FILE__, __LINE__, "arv[%d] : %s", retvalue, argv[retvalue]);
이렇게 소스로 log 찍어서 확인해보니~~~
argv[0] : A.exe
argv[1] : C:\Program Files\Canon
argv[2] : C:\Program Files\DVDMaker
요렇게 나온다.... "" 문자는 argv 를 구분하기 위한 것이지 string에 직접적으로 포함되지 않는다.
그래서 아래와 같은 Code는 필요가 없다. 앞으로 걱정 마시길... 그리고 이런거 작성하지 마시길~ ^^
나두 확인차원에서 해봤어요. ㅎㅎ.. 뜨끔~
if(argv[2][len-1]=='"')
{
...
}
다들 넘 잘아는 거겠지만, 시간지나면 잊어버리더라~ ㅋ
'IT-개발 > C및C++' 카테고리의 다른 글
STL - iterator 사용하기 sample (0) | 2016.12.01 |
---|---|
Design Patterns - sample - SingleTon (0) | 2016.12.01 |
전처리문... 한번씩 참고 (펌) (0) | 2016.03.07 |
함수포인터 - 콜백(callback) (펌) (0) | 2015.10.20 |
struct, class 키워드 (0) | 2015.10.19 |