echo에서 getopt를 쓰지 않는 이유

By | 2006/10/10

Code Reading 연습문제 2.2입니다.

‘echo 프로그램이 getopt 함수를 사용할 수 없는 이유는?’

 

먼저 getopt함수를 잘 모르기에 구글링을 했습니다.

링크1   링크 2   링크 3

대충 알겠네요.

먼저 echo 원본 소스를 보시죠.

(해당 소스를 윈도우 cmd에 돌아가도록 수정했습니다.)

가운데 보시면

‘This utility may NOT do getopt(3) option parsing.’

라고 나옵니다.

왜 나오는지 잘 몰라 한 번 getopt를 써서 만들어보았습니다.

초허접으로 만들었기에 최선의 코드라고는 생각되지 않습니다.

(지금도 getopt에 대해서 잘 모르겠네요.)

해당 소스를 컴파일해서 돌려보았습니다.

(컴파일러 : Dev-C++)

원 소스로 만든 파일 실행 결과입니다.

수정된 소스로 만든 파일 실행 결과입니다.

둘 다 똑같은 결과가 나옵니다.

그런데 한 번 이렇게 해보았습니다.

즉, 본 소스는 어디에 -를 넣든 상관이 없으나

수정된 소스는 뒤에도 -를 넣으면 옵션으로 처리한다는 단점이 있습니다.

 

이것 때문에 getopt 함수를 쓰지 못하는 듯 싶습니다.

하지만 맞는지는 잘 모르겠네요.

더욱 근본적인 이유가 있을 듯 싶으나

getopt함수에 대해서 완벽히 알지 못하니 답답하네요.

 

참조

Leave a Reply