1、创建一个孤儿进程
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
pid_t pid=fork();
if(pid>0){
//父进程
fprintf(stdout,"%d是父进程,其子进程是%d\n",getpid(),pid);
}else if(0==pid){
//子进程
fprintf(stdout,"%d是子进程,其父进程是%d\n",getpid(),getppid());
while(1){
fprintf(stdout,"%d是子进程,其父进程是%d\n",getpid(),getppid());
sleep(1);
}
}else{
perror("fork");
return -1;
}
return 0;
}
测试:
2、创建一个僵尸进程
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
pid_t pid=fork();
if(pid>0){
//父进程
fprintf(stdout,"%d是父进程,其子进程是%d\n",getpid(),pid);
while(1){
fprintf(stdout,"%d是父进程,其子进程是%d\n",getpid(),pid);
sleep(1);
}
}else if(0==pid){
//子进程
fprintf(stdout,"%d是子进程,其父进程是%d\n",getpid(),getppid());
}else{
perror("fork");
return -1;
}
return 0;
}
测试: