반응형


exec

프로그램을 실행한다.

사용법

     #include <unistd.h>

     int execl(const char *path, const char *arg0, ... /* const char *argn, (char *)0 */);
     int execlp(const char *file, const char *arg0, ... /* const char *argn, (char *)0 */);
     int execle(const char *path, const char *arg0, ... /* const char *argn, (char *)0,char *const envp[]*/);

     int execv(const char *path, char *const argv[]);
     int execvp(const char *file, char *const argv[]);
     int execve(const char *path, char *const argv[], char *const envp[]);


설명

exec계열 함수들은 현재의 프로세스 이미지를 새로운 프로세스 이미지로 덮어쓴다.
새로운 프로세스의 이미지는 실행 파일을 실행해서 얻는다. 그러므로 이들 함수는 공통적으로 실행할 파일의 경로정보를 가진다.
execl(), execlp(), execle() 함수는 매개 변수 arg0, arg1, ..., argn 을 가진다. 이 매개 변수는 프로그램의 실행인자로 넘어간다. 더 이상 매개변수가 없을 때는 반드시 NULL을 매개 변수로 지정해야 한다. 첫번째 매개 변수는 경로를 포함한 실행파일의 이름이다.
execv()와 execvp 함수는 마지막 원소가 NULL을 가리키는 배열로 프로그램 실행인자를 넘긴다. 첫번째 매개 변수는 경로를 포함한 실행 프로그램의 이름이다. 배열의 마지막 원소는 반드시 NULL이어야 한다.
execle()함수는 실행 프로그램 이름과 실행인자외에 환경변수도 넘길 수 있다. 환경 변수 값은 배열로 넘어간다. 배열의 마지막은 반드시 NULL이어야 한다.

반환값

execl 함수는 보통 return 을 하지 않는다.
만약 return을 한다면 에러가 일어난 경우로 -1 을 넘겨준다.

 

 

 

반응형
Posted by 공간사랑
,