와일드카드문자 command line 인수로 받아 처리하기

seeker의 이미지

sprintf( command , "ls -1 %s" , argv[1] );
로 command 를 저장하여
popen으로 읽어서 뿌려볼려합니다.

그런데 문제는 실행인수로 IP* 을 주어 IP로 시작하는 모든 파일을 화면에
표시하기를 원했는데, IP로 시작하는 첫번째 파일하나만
화면에 표시되고 그치는데 어떻게 처리해야하는지요?

그래서 argv[1] 이 IP* 이 아닌 IP로 시작하는 첫번째 파일의 완전한 이름으로 바뀌어 들어갑니다.
이것을 원하는대로 하려면 어떻게 고치면되는지?

서지원의 이미지

seeker wrote:
sprintf( command , "ls -1 %s" , argv[1] );
로 command 를 저장하여
popen으로 읽어서 뿌려볼려합니다.

그런데 문제는 실행인수로 IP* 을 주어 IP로 시작하는 모든 파일을 화면에
표시하기를 원했는데, IP로 시작하는 첫번째 파일하나만
화면에 표시되고 그치는데 어떻게 처리해야하는지요?

그래서 argv[1] 이 IP* 이 아닌 IP로 시작하는 첫번째 파일의 완전한 이름으로 바뀌어 들어갑니다.
이것을 원하는대로 하려면 어떻게 고치면되는지?

wild card는 shell자체에서 확장이 됩니다. * 자체가 프로그램에 전달되길 바란다면, \* 나 "*"를 사용해 보세요.