반응형
exec
1. exec
: execve
, execl
, execlp
, ....
exec
함수는 인자로 받은 다른 프로그램을 자신을 호출한 프로세스의 메모리에 덮어쓴다. 따라서 프로세스가 수행 중이던 기존 프로그램은 중지되어 없어지고, 새로 덮어쓴 프로그램이 실행된다. exec 함수군을 호출한 프로세스 자체가 바뀌므로, exec 함수를 호출해 성공하면 리턴값이 없다.
비슷한 기능을 하는 fork
는 프로세스를 복제하고, exec
은 프로세스를 대체한다.
1. exec
의 알고리즘
- remove old body
- load new body
- adjust process descriptor
2. function prototype of execve
y=execve(fname, argv, envp); // change to fname with additional arguments specified in argv[]
// and additional environment variables specified in envp[].
// returns -1 if error.
y=execve("/aa/bb", k, 0); // change to /aa/bb with additional arguments in k
추가적인 예제 및 실습 문제들을 확인하고 싶으시면 아래 링크를 클릭해주세요 :)
반응형
'Development > Linux' 카테고리의 다른 글
[Linux] 시스템 호출 관련 프로세스 관리 - fork, exec, wait, getpid 등 (0) | 2022.04.17 |
---|---|
[Linux] C/C++ - Command line argument (명령행 인자) (0) | 2022.04.17 |
[Linux] non-text file 및 wav 파일 다루기 (0) | 2022.04.17 |
[Linux] 원격 파일 전송 (업로드/다운로드) (0) | 2022.04.17 |
[Linux] open, read, write - C/C++ 시스템 호출 (0) | 2022.04.17 |