Fork() 함수를 사용한 예제
#include <unistd.h>
int main(int argc, char **argv)
{
pid_t retval;
int status;
if(argc!=2)
{
printf("사용법 : %s 디렉토리이름\n",argv[0]);
return -1;
}
if((retval=fork())==0) // 자식 프로세서
{
if((retval=fork())==0) // 손자 프로세서
{
printf("손자가 아래 명령을 실행합니다. \"mkdir %s\" \n",argv[1]);
execlp("mkdir","mkdir",argv[1],(char*)0);
exit(1);
}
else if(retval>0) // 아들 프로세서
{
wait(&status);
printf("아들이 아래 명령을 실행합니다. \"ls %s\"\n",argv[1]);
execlp("ls","ls","-d",argv[1],(char*)0);
exit(1);
}
}
else if(retval>0) // 부모 프로세서
{
wait(&status);
{
printf("부모가 아래 명령을 실행합니다. \"rmdir %s\"\n",argv[1]);
}
execlp("rmdir","rmdir",argv[1],(char*)0);
}
return 0;
}
---------------------------------------------------------------------------------
fork()는 상당히 재미있는 함수같습니다....
fork()함수를 무한루프 돌린다면......???