#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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.