zoukankan      html  css  js  c++  java
  • [学习笔记]fork写实复制

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include <unistd.h>
    #include<errno.h>
    
    //fork进程
    //变量的引申 每一个进程有独立的进程地址空间有更深入的理解
    
    //写实复制理解
    // 1. 子进程修改变量时拷贝
    // 2. 只拷贝页  ---->  Linux内核内存管理机制
    
    int main(void)
    {
        int num = 10;
        
        printf("sdfsd
    ");
        
        pid_t pid;
        printf("befor fork pid:%d
    ", getpid());
        
        //fork子进程
        pid = fork();
        if(-1 == pid)
        {
            perror("fork err");
            return 0;
        }
        if(pid > 0) // 大于0是父进程
        {
            printf("parent :%d
    ", getpid());
            ++num;
            printf("parent num = %d
    ", num);
        }
        if(0 == pid)
        {
            printf("chlid :%d
    ", getpid());
            ++num;
            printf("chlid num = %d
    ", num);
            
        }
        
        printf("after fork
    ");
        
        
        return 0;
    }
    
    /*
    运行结果
    ----------------
    sdfsd
    befor fork pid:15885
    parent :15885
    parent num = 11
    after fork
    chlid :15886
    chlid num = 11
    after fork
    -----------------
    */
  • 相关阅读:
    Remove Element
    Binary Tree Inorder Traversal
    Symmetric Tree
    Roman to Integer
    Search Insert Position
    Reverse Integer
    Pascal's Triangle
    Merge Sorted Array
    Same Tree
    Visual Studio Code 做PHP开发
  • 原文地址:https://www.cnblogs.com/shichuan/p/4428624.html
Copyright © 2011-2022 走看看