gpt4 book ai didi

linux - shm_open() 不创建共享内存段 ipcs

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:44 27 4
gpt4 key购买 nike

我得到了以下成功执行的 C 代码:

...
fd = shm_open(memory_package_name, O_CREAT | O_RDWR | O_EXCL , S_IRUSR | S_IWUSR);

if (fd == -1) { //will fail if file already exists because of flag O_EXCL
printf("\n shm_open() failed with error [%s]\n",strerror(errno));
exit(EXIT_FAILURE);
} else {
printf("shm_open success\n");
}
...

使用 ls -l/dev/shm 我看到正确创建了 name memory_package_name 的文件,但是当我使用 ipcs 时它没有t 显示任何共享内存段:

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status

------ Semaphore Arrays --------
key semid owner perms nsems

------ Message Queues --------
key msqid owner perms used-bytes messages

为什么?

最佳答案

你试过 shmget()shmat() 了吗?无论如何,如果您需要在两个不相关的进程之间共享内存,您确实需要 shm_open() ,但我认为您的案例中缺少的一点是使用 附加到该内存区域的调用shmat().

关于linux - shm_open() 不创建共享内存段 ipcs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51764549/

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