#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
int main(void)
{
pid_t fpid; // pid_t-->unsigned int
int count = 0;
fpid = fork();
// 错误返回
if (fpid == -1) {
printf("pid < 0 err.\n");
return -1;
}
// 返回子进程pid
if (fpid > 0) {
printf("parent: %d, child: %d\n", getpid(), fpid);
count++;
//sleep(5);
}
// 父进程
else if (fpid == 0) {
printf("child: %d, parent: %d\n", getpid(), getppid());
count++;
// 孤儿进程: 父进程先执行完,父进程释放后,子进程还在运行
sleep(100);
}
printf("count: %d\n", count);
return 0;
}
// 最后的printf函数执行了两次,count的结果都是1
fork函数01
最新推荐文章于 2019-11-21 21:59:52 发布