이거 몇 년 전에 갤에 썼던 팁인데,
새내기들이 많으니 재탕 할게요.
software engineering 에 보면
black box 분석과 white box 분석이 나옵니다.
소스코드를 본다든지, disassemble, de-compile 해보는 행위들은 화이트분석에 해당하죠.
반면 black box 분석은, 간단한 입출력만 체크해서 내용물을 확인하는 방법인데요.
강타입 언어인 C 는 약간 white 적인 요소가 있고
duck-typing 인 python 은 약간 black 적인 요소가 있다고 볼 수 있죠.
코드 작성자의 의도를 파악하는것에 있어서 말이죠.
본론으로 돌아가서,
우리는 외부 프로그램간에 파라메터로 통신하는 많은 예들을 찾아볼 수 있습니다.
이를테면 Visual Studio 같은 IDE 에서 컴파일러/링커 에 파라메터를 전달하는 과정 같은거죠.
그 외에도 기능이 실행파일 단위로 세분화된 모든류의 제품에 적용할 수 있는데요.
먼저 arg_dump.exe 를 앞서 작성한 친구처럼 argument print 기능을 넣어서 만듭니다.
그 이름을 gcc.exe bcc.exe 등 파라메터를 훔칠 대상 실행파일명으로 바꾸죠.
( 원래의 실행파일은 gcc.exe_ 처럼 이름을 바꿔서 보존해 둡니다. 다른폴더로 이동해두어도 좋습니다 )
그리고 ide 같은데서 빌드 명령을 내려보면, 세세한 파라메터들을 다 훔칠수 있습니다.
그 처리 결과 역시 원래의 실행파일에서 베껴서 전달하게 하면,
visual studio 의 IDE 가 내 컴파일러를 구동하게 할 수도 있고,
내 IDE 가 visual studio 의 컴파일러를 구동하게 할 수도 있죠.
이것이 응용!
길게 쓰기 귀찮으니 요까이!
네 shell 에게 어떤 프로그램을 실행하는 명령을 내리면서 인자를 채워주는 행위들은 다 똑같은 셈이죠.
my pleasure~
물론 중계자를 잘 만들어 준다면 vc++ ide 가 gcc 를 돌리게도 할 수 있어요 : )
blanco, negro?
Ebony, Ivory~