我需要在 C/C++ 中的不同可执行文件之间定义一个共享结构。我怎样才能做到这一点?在我的 starter.c 文件中:
pid_t child = fork();
if (child > 0) {
// Parent.
... // detach shared memory
argv[0] = "./app1";
execv(argv[0], argv);
}
else {
// Child.
argv[0] = "./app2";
execv(argv[0], argv);
}
- start.h -> 定义共享结构
- start.c -> 创建对象和分叉(如上面的代码)
- app.c -> 使用共享结构
更新:
如果我在start.h定义一个类,在共享内存中的fork()之前创建它(使用 MAP_SHARED),并在 app1.c 中访问它的成员(如 shared_class->s),则会出现分段错误
所以问题是:如何在执行后保持类/变量不变?