2012-05-21 7 views
0

현재 특정 디렉토리 (이 경우에는/dev/shm,이 부분에는 와일드 카드가 필요 없음)의 파일을 검색하는 방법을 찾으려고합니다. , 와일드 카드를 포함하는 패턴은 내가 거기에와일드 카드를 사용하여 디렉토리의 파일을 검색하는 방법

stack_review.txt stack_overflow.txt stack_servers.txt 

이있는 디렉토리가 예를 들어 말할 수, 나는 내가하는 일에 대해 가지고 어떻게 것, 패턴 스택 _ *. TXT에 맞게 모든 결과를 반환하고 싶어 이? Ive는 readdir을 사용하여 몇 가지 예제를 시도했지만 불행히도이 구현을 위해 올바르게 작동하는 것을 찾지 못했습니다. 따라서이 문제와 관련하여 도움을 얻을 수있는 감사를드립니다.

+0

당신은 쉘 글 로빙 패턴이나 정규 표현식 ("그렙") 패턴을 사용할 계획입니까? 차이가 있습니다. –

+0

이것이 당신이 찾고있는 것입니까? http://linux.die.net/man/3/glob? 또는 크로스 플랫폼을 원하십니까 (게시글에서 그렇게 생각하지 않습니다). – nhahtdh

+0

http://stackoverflow.com/a/10678765/643500 –

답변

3

당신은 glob()을 찾고 있습니다. http://linux.die.net/man/3/glob에서 사용의

한 예는 쉘에서 ls -l *.c ../*.c 를 입력 시뮬레이트 다음 코드입니다 :

glob_t globbuf; 

globbuf.gl_offs = 2; 
glob("*.c", GLOB_DOOFFS, NULL, &globbuf); 
glob("../*.c", GLOB_DOOFFS | GLOB_APPEND, NULL, &globbuf); 
globbuf.gl_pathv[0] = "ls"; 
globbuf.gl_pathv[1] = "-l"; 
execvp("ls", &globbuf.gl_pathv[0]); 
+1

+1하지만, glob'는 표준 C가 아니기 때문에 모든 플랫폼 (특히 Windows)에서 사용할 수있는 것은 아닙니다. 그것은 POSIX이지만, 꽤 일반적으로 사용 가능합니다. –

+0

도움 주셔서 감사합니다 :) – lacrosse1991

0

요소를 폴더에 중첩시킬 수 있습니까? 그렇다면 메서드가 재귀 적이어야합니다.

관련 문제