程序的理解
阿新 • • 發佈:2018-12-16
一、fork入門知識 一個程序,包括程式碼、資料和分配給程序的資源。fork()函式通過系統呼叫建立一個與原來程序幾乎完全相同的程序,也就是兩個程序可以做完全相同的事,但如果初始引數或者傳入的變數不同,兩個程序也可以做不同的事。 一個程序呼叫fork()函式後,系統先給新的程序分配資源,例如儲存資料和程式碼的空間。然後把原來的程序的所有值都複製到新的新程序中,只有少數值與原來的程序的值不同。相當於克隆了一個自己。
#include<unistd.h>
#include<stdio.h>
#include<sys/types.h>
int main()
{
pid_t pid;
char *message;
int n = 6;
printf("fork program starting\n");
pid = fork();
switch (pid)
{
case -1:
perror("fork failsed");
exit(1);
case 0:
message = "this is the child";
n++;
break;
default:
message = "this is the parent";
}
printf("%s:pid = %d,n = %d\n", message, getpid(), n);
exit(0);
}