Linux多進程(fork)
阿新 • • 發佈:2017-05-03
根據 服務 linux 多進程 ror return tpi 作用 影響
進程概念:
一個進程是一次程序執行的過程,它和程序不同,程序是靜態的,它是一些保存在磁盤上可執行的代碼和數據的集合,而進程是一個動態概念,也是操作系統分配資源的最小單位
fork和exec是兩個重要的系統調用,fork的作用是根據現有的進程復制出一個新的進程,原來的進程稱為父進程,新的進程成為子進程,
系統中運行著很多進程,這些進程都是從開始的一個進程一個一個復制出來的。
#include <sys/type.h>
#include <unistd.h>
pid_t fork(void);
fork調用失敗返回-1,調用成功在父子進程中的返回值不一樣,子進程中返回0,父進程中返回的數值大於0
#include <sys/types.h> //基本系統數據類型的頭文件 #include <unistd.h> //包含了許多UNIX系統服務的函數原型 getpid函數 #include <stdio.h> //輸入輸出函數 int main(void){ pid_t pid; char * message; int n; pid = fork(); if(pid < 0){ perror("fork failed"); } if(pid == 0){ n = 6;//父子進程變量n互不影響message = "This is the child my pid is"; }else{ n = 3;////父子進程變量n互不影響 message = "This is the parent my pid is"; } for(; n > 0; n--){ printf("%s %d\n", message, getpid()); sleep(1); } return 0; }
Linux多進程(fork)