system 으로 쉘 명령어를 실행시키거나 프로세스를 실행시키는건 대체적으로 좋지 않은 방법이다.
이는 system 이 동작하기 위해 먼저 쉘을 실행시키기 때문이다. 이렇게 시작된 쉘은 각 설치된 쉘의 환경등에 따라 다른 동작성을 보일 수 있기 때문이다.
그래서 보통 대체적으로 쓰이는 것이, exec 이며 exec 계열은 다음과 같이 나뉘어진다.
execl, execle, execlp
execv, execve, execvp
execv, execve, execvp
그러나 이런 exec 또한 프로세스를 실행시킨 뒤 에러가 나지 않는 한 리턴되지 않는다.
즉,우리가 처음 시작한 프로세스에서 여러개의 프로세스를 실행시키기에는 부적합하다는 것이다.
그래서 대신 자식 프로세스를 생성하거나 쓰레드를 생성하는 것이다
'프로그래밍 > C' 카테고리의 다른 글
enum vs #define vs const (0) | 2012.02.05 |
---|---|
enum 타입 c vs c++ (0) | 2012.02.04 |
process & signal (0) | 2012.01.25 |
error: invalide storage class for function 'xxxx' (0) | 2011.11.29 |
대상체의 기억수명 (0) | 2011.11.29 |