试图了解分叉以及父进程和子进程之间的关系

时间:2016-02-16 23:16:11

标签: c process fork parent-child

所以我试图理解分叉过程和以下程序。我有一个全局整数,可以被父进程和子进程操纵。

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <cstdlib> 


using namespace std;


int global = 0;

int main()
{

    int fork_return;


    fork_return = fork();

    if(fork_return == 0)
    {
        global++;
        printf("Global value in child is: %d \n", global);
    }
    else
    {
        global--;
        printf("Global value in parent is: %d \n", global);
    }


    return 0;
}

在子进程中,global是1

在父进程内,global为-1

我的问题是:为什么我们有一个全局变量,孩子的事情基本上是从父母那里隐藏的,反之亦然?

我的理解是:孩子中发生的事情是从父母身上隐藏的,反之亦然。

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:2)

父级和子级在调用@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getParameter("idArticle") != null) { System.out.println(request.getParameter("idArticle")); } else { System.out.println("Failed"); } } 时具有相同的内存和文件描述符视图。在那之后,他们每个人都可以自由地分道扬.. fork操作将无法使用,否则一个进程中的任何更改都会破坏另一个进程正在执行的操作。