본문 바로가기
linux

새 프로세스 시작하기

by 상레알 2010. 8. 15.

새프로세스를 생성하는 것이 가능한대.. 이를 위한 시트메 호출은 system이다.


#include <stdlib.j>

int system (const char *string);

system 함수는 string 매개변수로 주어진 명령을 실행하고 그것이 끝날 떄 까지 기다린다.
system은 만일 주어진 명령을 실행할 수 없으면 127을, 그외의 오류가 발생하면 -1을 돌려준다. 명령을 실행한 경우에는 그 명령의 종료 코드를 돌려준다.

-------------------------------------
system 함수 예제
-------------------------------------

#include <stdlib.h>
#include <stdio.h>

int main()
{
        printf("Running ps with system\n");
        system("ps ax");
        printf("DON.\n");
        exit(0);
}

--------------------------------------------

systme 함수는 주어진 프로그램을 셸을 이용해 시동하므로, 셸에서 사용 가능한 특별한 구문을 그대로 사용할 수 있다.
system 함수는 상당히 유용하나 제약이 따른다. 프로그램은 system 호출이 시작한 프로세스가 끝나길 기다려야 하며, 그 동안은 다른 일을 하지 못한다.
system은 셸을 이용해서 프로그램을 실행하므로, 일반적으로 system 호출이 다른 프로세스를 시동하기에 아주 좋은 방법은 못된다. system 호출은 원하는 프로그램을 띄우기 전에 셸을 띄워야 한다는 점에서 비효율적이며, 또한 셸과 셸이 사용하는 환경은 해당 리눅스 설치본에 상당히 의존적이다.

'linux' 카테고리의 다른 글

스레드  (0) 2010.08.17
입출력 재지정  (0) 2010.08.17
좀비 프로세스  (0) 2010.08.17
프로세스 이미지 복제  (0) 2010.08.15
프로세스 이미지 대체하기  (0) 2010.08.15
프로세스 일정 관리  (0) 2010.08.14
프로세스와 신호  (0) 2010.08.13
vim 설정  (0) 2010.06.30
모듈의 상호참조  (0) 2010.06.03
모듈에 대해 알아야 할것들  (0) 2010.06.03