linux系統程式設計——寫實拷貝
阿新 • • 發佈:2021-02-13
linux系統程式設計——寫實拷貝
一、呼叫fork函式會發生什麼
(1)有可能父程序在跑,也有可能子程序再跑,取決於程序的排程,fork函式後面的所有程式碼父子程序都有,(程式碼共享)。
父程序拷貝一份給子程序,資料也拷貝了一份給子程序。
如果在子程序修改資料,修改的範圍是在子程序裡面的資料,並不會修改父程序裡面的資料。
例子:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;
int data=10;
printf("father:id=%d\n",getpid());
pid=fork();
if(pid>0)
{
printf("this is father print,father pid=%d\n",getpid());
}
else if(pid==0)
{
printf("this is child print,child pid=%d\n",getpid() );
data=data+100;
}
printf("data=%d\n",data);
return 0;
}
——@上官可程式設計