【发布时间】:2015-07-22 12:01:27
【问题描述】:
我是 C++ 新手。是否可以在fork()中声明一个变量供父子进程共享使用?
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
int var;
int main(int argc, char * argv[])
{
pid_t child_pid;
int status;
var = 3;
if ((child_pid = fork()) < 0) {
perror("Error (fork failure)");
}
if (child_pid == 0) {
var = 10;
cout << "CHILD ASSIGNED var=" << var << endl;
}
else {
wait(NULL);
cout << "PARENT var=" << var << endl;
}
}
我目前得到的结果是:
CHILD ASSIGNED var=10
PARENT var=3
我想要的是
PARENT var=10
【问题讨论】:
-
你需要支持什么操作系统(open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2044.html 建议 Windows 和 POSIX-y 操作系统(例如 Linux 和 OSX)现在可以使用相同或相似的机制;但最后一次不是这样我使用共享内存的时间
-
这能回答你的问题吗? Using shared memory with fork()