프로그램의 실행
int execve(const char *path, char *const argv[], char *const envp[]);
위의 함수만 시스템 콜. 나머지 5개 함수는 라이브러리 함수.
int execl(const char *path, const char *arg0, ... const char *argn, (char*) 0);
- 형태로 argument는 하나씩
- l : 리스트 형태의 명령 라인 인자.
int execv(const char *path, char *const argv[]);
- 이중포인터 형태로 argument를 넣음. argv[마지막] = NULL;
- v : 벡터 형태의 명령 라인 인자
ine execle(const char *path, const char *arg0, ... const char *argn, (char*) 0, char *const envp[]);
int execve(const char *path, char *const argv[], char *const envp[]);
- char *const envp[] 부분은 환경 변수
- e : 환경 변수 인자
int execlp(const char *path, const char *arg0, ... const char *argn, (char*) 0);
int execvp(const char *path, char *const argv[]);
- 환경변수의 $PATH(path)를 참조하여 실행. exec함수를 하기 전에 환경변수를 미리 넣어 실행.
- path : 경로 정보가 없는 실행 파일 이름.
exec 호출 후 프로세스의 속성.
FD_CLOEXEC 세트되지 않은 경우 : open된 file descriptor 유지.
시그널 처리는 초기 설정으로 복원되지만 무시되고 있던 시그널은 계속 무시.
'컴퓨터 공부 > Advanced UNIX System Programming' 카테고리의 다른 글
[5월 6일 3교시] 시스템 정보 2 (0) | 2009.05.06 |
---|---|
[5월 6일 2교시] 프로세스 제어 4 + 시스템 정보 1 (0) | 2009.05.06 |
[5월 1일 3교시] 프로세스 제어 2 (0) | 2009.05.01 |
[5월 1일 2교시] 프로세스 제어 1 (0) | 2009.05.01 |
[5월 1일 1교시] 메모리 관리 (0) | 2009.05.01 |