gpt4 book ai didi

c - 简单地在共享内存段 : C 中存储一个整数

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

我只是想在两个进程之间共享一个整数,但是内存段在程序 1 中初始化并在程序 4 中使用。这是程序 1 中的初始化:

shmid = shmget(key, sizeof(int*), 0666 | IPC_CREAT);
int *data = (int *)shmat(shmid, (void*)0,0);

在这里我收到“从不同大小的整数转换为指针”的警告。啊。

我想很简单,但我是 IPC 的大白痴。以及 c 中的许多其他内容......

然后我将它传递给另一个程序:

snprintf(shmarg, sizeof(shmarg), "%n", data);
pid_t pid3 = run_cmd4("/home/tropix/hw11-4", shmarg, semarg, pipe_from_p2_2, pipe_to_p5_2);

但不确定如何在另一端访问它。如何在程序 4 中取回 int?

最佳答案

很确定您缺少定义 shmat() 的 header ,因此编译器猜测 shmat 返回一个 int(不是指针)。

关于c - 简单地在共享内存段 : C 中存储一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5932253/

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