[Linux] fork, exec 함수의 차이점을 알아보자
리눅스에는 execl, execlp, execle, execv, execvp, execvpe 처럼 exec 계열의 함수가 있다. 인자 전달하는거 따라서 이름이 조금씩 변한다. https://man7.org/linux/man-pages/man3/exec.3.html 자세한건 찾아보도록하자 현재 프로세스 이미지를 인자로 준 바이너리 이미지로 대체한다. 포너블 문제를 풀 때, gdb 를 붙여서 디버깅 하는데, system("/bin/sh") 이런걸 실행했을 때, gdb 에서 더이상 디버깅이 안되는 경우가 있는데, system 함수 내부에서 execve 를 실행하므로 현재프로세스가 /bin/sh 로 대체되기 때문이다. fork 함수는 이와 다르게, 새 프로세스를 복제해서 생성한다. 분리된 메모리공간을 새로 할당..
2021. 10. 3.