프로그래밍/C
system vs exec
code cat
2012. 1. 30. 08:07
system 으로 쉘 명령어를 실행시키거나 프로세스를 실행시키는건 대체적으로 좋지 않은 방법이다.
이는 system 이 동작하기 위해 먼저 쉘을 실행시키기 때문이다. 이렇게 시작된 쉘은 각 설치된 쉘의 환경등에 따라 다른 동작성을 보일 수 있기 때문이다.
그래서 보통 대체적으로 쓰이는 것이, exec 이며 exec 계열은 다음과 같이 나뉘어진다.
execl, execle, execlp
execv, execve, execvp
execv, execve, execvp
그러나 이런 exec 또한 프로세스를 실행시킨 뒤 에러가 나지 않는 한 리턴되지 않는다.
즉,우리가 처음 시작한 프로세스에서 여러개의 프로세스를 실행시키기에는 부적합하다는 것이다.
그래서 대신 자식 프로세스를 생성하거나 쓰레드를 생성하는 것이다