是否可以使用fork()
与父进程共享在使用C
创建的子进程中分配的内存?如果是的话,你能提供一个最小的例子吗?经过大量的搜索,我找不到任何好的例子。我只使用mmap()
与MAP_ANONYMOUS | MAP_SHARED
共享父母与孩子之间的记忆。
答案 0 :(得分:1)
这不是父母/子女的问题,而是fork()
之前/之后。如果您想在分支之后设置共享内存空间,则可以在父级和子级中使用shmget()
/ shmat()
。
例如,必须在两个过程中调用它:
int shmid = shmget(0x31337, SHMSZ, IPC_CREAT | 0666)
char *shm = shmat(shmid, NULL, 0)
不可能在孩子中进行一些调用,这会使共享内存“神奇地”出现在父母中(或反过来)。