我正在尝试在使用 fork() 时在整个应用程序中更新整数指针的值。我无法理解,我想在分叉期间发生了什么。它与主要变量不共享相同的变量吗?当它们在分叉中发生变化时,我怎样才能让 main 更新它的值。这是我创建的一个示例,用于了解我想要做什么:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
void changeValue(int *value)
{
*value = *value * 2;
printf("value in changeValue(): %d\n", *value);
}
main ()
{
int pid;
int *value = new int;
*value = 10;
printf("value in main: %d\n", *value);
pid = fork();
if (pid == 0) {
changeValue(value);
_exit(0);
}
sleep(2);
// I want value = 20 here, but value stays = 10
printf("value in main after fork(): %d\n", *value);
}