// a.c
#include <stdio.h>
int main()
{
printf("a : YoonByoungHoon\n");
return 0;
}
// b.c
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
int main()
{
int status = 0;
// system() 이용 - 쉘을 이용하기때문에 쉘환경에 종속적이어서 비효율적이다.
pid_t parent, child;
system("./a");
printf("system()\n");
// fork() and execl() - 쉘환경에 상관없이 자식 프로세스를 생성하여 실행할 수 있다.
parent = fork();
switch(parent)
{
case -1:
perror("fork failed.");
break;
case 0:
execl("./a", "a", "", 0); // fork() 를 통해 자식프로세스를 생성하면 execl 로 새로운 일을 수행할 수 있다.
break;
default:
break;
}
// 자식 프로세스가 일을 끝낼때까지 기다려 준다.
child = wait(&status);
printf("fork() and execl()\n");
printf("Parent Process completed.\n");
return 0;
}
[출처] Linux system() 와 fork(), execl() 사용|작성자 소프트맨
'컴퓨터 > 언어,프로그래밍' 카테고리의 다른 글
fork() execl() wait() (0) | 2009.05.27 |
---|---|
fork 함수와 wait 함수의 이해! 자식프로세스의 시작.. 그리고 끝! (0) | 2009.05.27 |
프로세스 (0) | 2009.05.26 |
프로세스 입출력 popen (0) | 2009.05.26 |
C Standard Library (0) | 2009.05.26 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |