gpt4 book ai didi

c - 如何在C中访问父进程的变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:41 26 4
gpt4 key购买 nike

在一个进程中有一个名为“users”的变量,该进程派生了一些子进程,我想知道这些子进程如何访问“users”变量?

顺便说一句:
该变量会在运行时被父进程修改

最佳答案

您想使用共享内存。你需要 to open一个文件,使用 this设置长度(可能是 sizeof(*var)),mmap它。在 fork 之前执行此操作。完成后unmap it , close the file , 和 unlink共享文件。

void *mem;
int shm_fd;
shm_fd = shm_open("file", O_CREAT | O_RDWR, 0644);
ftruncate(shm_fd, sizeof(int));
mem = mmap(0, sizeof(int), PROT_WRITE | PROT_READ, MAP_SHARED, shm_fd, 0);
/* fork it, use it */
munmap(mem, sizeof(int));
close(shm_fd);
shm_unlink("file");

关于c - 如何在C中访问父进程的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5776082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com