gpt4 book ai didi

使用 POSIX 标准将结构复制到 C 中的共享内存

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:39 25 4
gpt4 key购买 nike

我需要访问不同进程之间的结构。有什么方法可以将结构复制到共享内存中,然后在其他进程中访问相同的结构。(使用 POSIX 标准)

我的结构是

typedef struct binary_semaphore {
pthread_mutex_t mutex;
sem_t *sem;
} binary_semaphore;

最佳答案

别想了!

如果你的结构只包含普通的旧数据(整数、 float 、字符或它们的数组)一切都很好:你可以访问共享内存段,用memcpy复制结构>,您可以通过共享内存通过任何其他进程访问它。

一旦结构包含指向普通旧数据的指针,它就会变得更加棘手:您必须将普通旧数据复制到共享内存,并用指向共享内存的 id 或共享内存段中的偏移量替换指针。

但是这里你的结构包含一个互斥锁和一个指向信号量的指针。它们本身就是进程间通信工具!只需从其他进程访问它们并直接使用它们。

关于使用 POSIX 标准将结构复制到 C 中的共享内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32165540/

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