所以我试图理解分叉过程和以下程序。我有一个全局整数,可以被父进程和子进程操纵。
#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
我的问题是:为什么我们有一个全局变量,孩子的事情基本上是从父母那里隐藏的,反之亦然?
我的理解是:孩子中发生的事情是从父母身上隐藏的,反之亦然。
为什么会出现这种情况?
答案 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
操作将无法使用,否则一个进程中的任何更改都会破坏另一个进程正在执行的操作。