linux中fork()函数详解 (阅读笔记)

2019-06-02  本文已影响0人  麦芽de忧伤

linux中fork()函数详解(转载)

一、fork入门知识
#include <unistd.h>  
#include <stdio.h>   
int main ()   
{   
    pid_t fpid; //fpid表示fork函数返回的值  
    int count=0;
    printf("当前进程id:  %d\n", getpid());
    fpid=fork();

    if (fpid < 0) {
        printf("error in fork!");
    } else if (fpid == 0) {
        printf("我是子进程 , 我的进程id: %d , 我的子进程id: %d\n", getpid(), fpid);
        count++;
    } else {
        printf("我是父进程 , 我的进程id: %d , 我的子进程id: %d\n", getpid(), fpid);
        count++;
    }

    printf("统计结果是: %d\n",count);
    return 0;  
}  
运行

结果:
当前进程id:  16948
我是父进程 , 我的进程id: 16948 , 我的子进程id: 16949
统计结果是: 1
我是子进程 , 我的进程id: 16949 , 我的子进程id: 0
统计结果是: 1
fork 被调用一次,能够返回两次,它有三种不同的返回值:
fokr调用失败的原因
fork执行完毕后,出现两个进程,fork只拷贝下一个要执行的代码到新的进程,用户态拷贝。
     父进程(第一次fock)
         /  \
父进程(相同)  子进程(相同)
      .....
上一篇 下一篇

猜你喜欢

热点阅读