execve 함수란?


실행 가능한 파일인 fileaname의 실행 코드를 현재 프로세스에 적재하여 기존의 실행코드와 교체하여 새로운 기능으로 실행한다. 즉, 현재 실행되는 프로그램의 기능은 없어지고 filename 프로그램을 메모리에 loading 하여 처음부터 실행한다.

UNIX/LINUX에서는 프로세스 생성(fork)과 실행할 binary 교체(exec 계열 함수)는 분리되어 있다.

execve의 의미

execve는 exec 계열이다. exec 뒤에 붙은 글자의 의미는

따라서 execve의 의미는 배열의 마지막이 NULL인 배열을 인자로 받고, 설정할 환경 변수를 인자로 받는다는 의미

execve


#include <unistd.h> 

int execve(const char *filename, char *const argv[], char *const envp[]);

파라미터