1. exec 함수군의 형태
- exec 함수군은 6가지 형태가 있으며 각자 지정하는 인자가 약간씩 다름
- 인자로 전달한 pathname이나 file에 설정한 명령이나 실행 파일을 실행
- arg나 envp로 시작하는 인자를 pathname이나 file에 지정한 파일의 main() 함수에 전달
- 각 함수별로 경로명까지 지정하거나 단순히 실행 파일명만 지정하는 등 차이가 있고 인자를 전달하는 형태에도 차이가 있음
2. 각 exec 함수군의 기능
- execl()
- pathname에 지정한 경로명의 파일을 실행하며 arg0~argn을 인자로 전달
- 첫 인자인 arg0에는 실행 파일명을 지정
- execl() 함수의 마지막 인자로는 인자의 끝을 의미 하는 NULL 포인터((char *)0)를 지정해야 함
- pathname에 지정하는 경로명은 절대 경로나 상대 경로 모두 사용할 수 있음
- execlp()
- file에 지정한 파일을 실행하며 arg0~argn만 인자로 전달
- 이 함수를 호출한 프로세스의 검색 경로(환경 변수 PATH에 정의된 경로)에서 파일을 찾음
- arg0~argn은 포인터로 지정
- execlp() 함수의 마지막 인자는 NULL 포인터로 지정해야 함
- execle()
- pathname에 지정한 경로명의 파일을 실행하며 arg0~argn과 envp를 인자로 전달
- envp에는 새로운 환경 변수를 설정할 수 있음
- arg0~argn을 포인터로 지정하므로 마지막 값은 NULL 포인터로 지정해야 함
- envp는 포인터 배열
- 이 배열의 마지막에는 NULL 문자열을 저장해야 함
- execv()
- pathname에 지정한 경로명에 있는 파일을 실행하며 argv를 인자로 전달
- argv는 포인터 배열
- 이 배열의 마지막에는 NULL 문자열을 저장해야 함
- 함수명에 v가 들어간 함수는 명령행 인자를 포인터 배열로 지정
- execvp()
- file에 지정한 파일을 실행하며 argv를 인자로 전달
- argv는 포인터 배열
- 이 배열의 마지막에는 NULL 문자열을 저장해야 함
- execvpe()
- pathname에 지정한 경로명의 파일을 실행하며 argv, envp를 인자로 전달
- argv와 envp는 포인터 배열
- 이 배열의 마지막에는 NULL 문자열을 저장해야 함