gpt4 book ai didi

c - Linux 中 IPC 的 shmget

转载 作者:行者123 更新时间:2023-11-30 21:03:07 24 4
gpt4 key购买 nike

我对 Linux 操作系统真的很陌生。有人能告诉我如何在 Linux 上完成这项工作吗?我不是在问 C 代码。很难理解。谢谢
1.第一个程序使用 shmget() 创建共享内存区域并将其映射到其地址空间。然后它将“Hello”写入该共享内存区域。然后等待,直到共享内存区域中的第一个字节变成*。
2.第二个程序应在第一个程序之后启动。它将第一个程序创建的共享内存区域映射到其地址空间,并读取字符串并将其打印到终端。然后它将共享内存区域的第一个字节更改为*。

最佳答案

我认为这就是您正在寻找的。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/shm.h>

#define SHSIZE 100

int main(){

int shmid;
char *shm;

shmid = shmget(9876, SHSIZE, IPC_CREAT | 0660);
shm = shmat(shmid, NULL, 0);
memcpy(shm, "Hello", 5);

while(*shm != '*'){
sleep(1);
}

return 0;
}

客户:

#include <stdio.h>
#include <sys/shm.h>

#define SHSIZE 100

int main(){
int shmid;
char *shm,*s;

shmid = shmget(9876, SHSIZE, IPC_CREAT | 0660);
shm = shmat(shmid, NULL, 0);

for(s = shm; *s != 0; s++){
printf("%c", *s);
}
printf("\n");

*shm = '*';

return 0;
}

关于c - Linux 中 IPC 的 shmget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26500476/

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