fork()函数用于创建子进程。进程创建成功后,函数返回两次值,一次返回值为0,代表子进程在运行, 另一次返回子进程的ID,代表当前父进程
正在运行。例如下面的程序:
/*
* Test.c
*
* Created on: Oct 19, 2011
* Author: root
*/
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
pid_t pid;
pid=fork();
int k=0;
char* msg;
switch(pid)
{
case 0:
printf("child process is running curpid is %d,parentid:%d\n",
pid,getppid());
k=3;
msg="child process running\n";
break;
case -1:
printf("error\n");
break;
default:
printf("childpid:%d,parentid:%d\n",pid,getppid());
k=10;
msg="parent process running\n";
break;
}
while(k>0)
{
puts(msg);
sleep(2);
k--;
}
//sleep(1000);
return 0;
}
父子进程交替进行,输出信息。