에 저장된 C 프로그램이 있습니다 /usr/sbin/
. 이 프로그램은 2초마다 "Hello World"를 인쇄합니다. 모든 폴더에서 프로그램을 호출/실행할 수 있습니다.
이를 사용하여 C 프로그램을 작성하면 system("a.out");
모든 폴더에서 실행되지만 사용할 때는 execl()
절대 경로를 제공해야 합니다. execl("/usr/sbin/a.out", "a.out");
그렇지 않으면 실행되지 않습니다. 왜?
답변1
system()
sh
C 라이브러리 함수는 주어진 명령을 실행하는 데 사용됩니다 . 이렇게 하면 $PATH
프로그램이 절대 경로를 사용하여 지정되지 않은 한 디렉터리에서 실행 파일을 검색합니다. C 라이브러리 함수는 execl()
이러한 조회를 수행하지 않습니다.
exec
이 기능 계열을 사용하여 프로그램을 실행한 다음 execlp()
어떤 기능을 사용하여 PATH
알아보 시겠습니까 ?
시스템을 확인하십시오 man execlp
.