gpt4 book ai didi

c - 在 Solaris 中的父进程和子进程之间共享内存(在 C 中)

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:41 24 4
gpt4 key购买 nike

我只是在寻找一个简单的教程/示例来指引我正确的方向,我似乎找不到一个好的简单的。

非常感谢你的帮助,

非常感谢,

贾里

最佳答案

你必须选择:

  • 您可以先分配和附加共享内存,然后再执行 fork。

  • 您可以分配共享内存,派生子进程,然后附加到两个进程中的共享内存。

第一个选项可能更容易。它可能如下所示:

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>

....

int size = 32000;

/* allocate and attach shared memory */
int shmID = shmget(IPC_PRIVATE, size, 0600);
void* shmPtr = shmat(shmId, NULL, 0);

/* fork child process */
pid_t pID = fork();
if (pID == 0)
{
/* child */
... do something with shmPtr ...

/* detach shared memory */
shmdt(shmPtr);
}
else
{
/* parent */
... do something with shmPtr ...

/* detach shared memory */
shmdt(shmPtr);
}

关于c - 在 Solaris 中的父进程和子进程之间共享内存(在 C 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4112071/

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