문제를 설명하려고합니다. 내가 리눅스에서 다음 명령을execlp와 매개 변수로 찾기
find ~ -name file.txt
을 실행하면, file.txt
명명 된 모든 파일은 콘솔 화면에 표시됩니다. 나는 execlp
함수를 사용하여 file.txt
과 같은 특정 이름을 가진 모든 파일을 찾는 동일한 작업을 수행하는 C 프로그램을 만들고 싶습니다.
나는 같은 것을 할 경우는 잘 컴파일하지만 실행에 그것은 단지 현재 작업 디렉토리에있는 이름 file.txt
으로 파일을 표시
execlp("find","find","-name","file.txt",NULL);
. 난 내 프로그램에서 같은 것을 할 경우 :
execlp("find","find","~","-name","file.txt");
그것을 잘 컴파일하지만 실행에 그것은 나에게 다음과 같은 오류 제공 :
find: `~': No such file or directory.
것은 내가 execlp
기능을 제공해야합니다 어떤 매개 변수 검색을 사용 가능한 모든 디렉토리에서 file.txt
을 찾으십니까? 나는 execlp
함수로 이것을 할 필요가있다. 대단히 감사합니다!
쉘이 cmd 행에서'~'를 확장하고 있지만'execlp' 호출에서 확장하지 않습니다. 전체 경로를 사용하거나 실제로 존재하는 디렉토리 요소를 지정하십시오 ('.'은 마음에 떠오 릅니다). – WhozCraig
이 프로그램은 다른 사용자 계정에서 작동해야합니다. 예를 들어, 내 친구가 자신의 계정에서이 프로그램을 실행하고 있다면, 파일 시스템에 존재하는 "file.txt"라는 이름의 모든 파일을 가져와야합니다. 사용자는 다른 사용자의 파일에 대한 액세스 권한이 없습니다. – Zan