1. 程式人生 > >Linux多進程(fork)

Linux多進程(fork)

根據 服務 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)