execlp 예제

C에서 execvp() 함수를 사용하는 방법을 보여 줄 작은 예제를 살펴보겠습니다. 우리는 두 가지를해야합니다. C 파일 , EXEC.c 및 execDemo.c 우리는 execDemo.c에서 execvp() 함수를 호출하여 execDemo.c로 execDemo.c를 대체합니다. execlp 시스템 호출은 컴파일 타임에 새 프로그램에 대한 인수 수를 알 때 사용할 수 있습니다. 컴파일 타임에 인수 수를 알 수 없는 경우 execvp를 사용합니다. 즉, execlp (“ls”, “ls”, (char *)NULL이 될 것입니다. 또는 모듈-2/예제/src/execlp_ls.c에서 실행하는 경우 execv를 사용하는 방법을 보여주는 다음 예제 프로그램을 찾을 수 있습니다. man7.org > tlpi > 코드 > 온라인 > procexec/execlp.c inecl (const char *path, const char *arg, …); int execlp (const char *파일, const char *arg, …); int execle (const char *path, const char *arg, …, char * const envp[]); int execv (const char *path, char *const argv[]); int execvp(const char *파일, char *const argv[]); int execvpe (const char *파일, char *const argv[], char *const envp[]); execlp 시스템 호출은 지정된 파일 이름에 슬래시(/) 문자가 없는 경우 실행 파일을 검색할 때 셸의 작업을 복제합니다. 검색 경로는 PATH 변수에 의해 환경에 지정된 경로입니다. 이 변수를 지정하지 않으면 기본 경로 “:/bin:/usr/bin”이 사용됩니다. 이것은 procexec/execlp.c, 책, 리눅스 프로그래밍 인터페이스와 함께 하는 예제입니다.

실행 파일의 전체 경로를 전달하는 해결 방법은 PATH: 일반적으로 함수 execlp() 및 execvp()가 가리키는 디렉터리에서 파일(execlp의 첫 번째 인수)을 검색하는 함수 execlp를 사용하는 것입니다. ENOMEM과 E2BIG, 그들은 반환하는. 위에서 설명한 것 이외의 오류가 발생하면 반환됩니다. 함수의 exec 제품군은 현재 실행 중인 프로세스를 새 프로세스로 대체합니다. 다른 C 프로그램을 사용하여 C 프로그램을 실행하는 데 사용할 수 있습니다. 그것은 헤더 파일 unistd.h 아래에 온다. exec 가족에는 예와 함께 아래에 표시된 많은 구성원이 있습니다. 이 프로그램은 execlp를 사용하여 PATH에서 ls라는 실행 파일을 검색하고 -l을 새 프로그램에 인수로 전달합니다. 새 프로그램은 셸 명령 ls가 디렉토리에 파일을 나열하는 데 사용하는 것과 동일한 프로그램입니다. execl, execlp, execcle, execv, execvpe – 파일을 실행 위에 표시된 동일한 C 프로그램은 execlp() 또는 execl() 함수로 실행될 수 있으며 그들은 동일한 작업을 수행합니다 즉, 현재 프로세스를 새로운 프로세스로 대체합니다.