腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
在
使用
相同
名称
重新
打开
时
,
shm_open
()
失败
,
尽管
再次
使用了
O_CREAT
、
、
、
//man7.org/linux/man-pages/man3/shm_open.3.html的说法,它说 After a successful shm_unlink(), attempts to
shm_open
我
使用
下面的示例,它在执行shm_unlink之后创建新的共享内存对象,正如他们所说的那样,我
使用
O_CREAT
。 但是当我运行这个问题
时
,它给出了错误相关的bus error。#include <sys/mman.h
浏览 74
提问于2019-01-21
得票数 2
回答已采纳
2
回答
Mmap和结构
、
、
我正在
使用
信号量处理一些代码,包括进程之间的通信。(
在
主应用程序中,在从属进程中也是如此)fd =
shm_open
("MYSHM", O_RDWR|
O_CREAT
|O_EXCL, 0); printf("Error");} memory =
浏览 0
提问于2010-05-19
得票数 2
回答已采纳
2
回答
Posix共享内存初始化
、
、
、
、
我
在
几个地方看到的一个常见建议是
使用
标志
shm_open
()调用
O_CREAT
|O_EXCL:如果成功,那么我们是共享内存的第一个用户并可以初始化它,否则我们不是第一个,共享内存已经被另一个进程初始化了一个简单的测试程序
使用
shm_open
调用
O_CREAT
|O_EXCL,然后关闭描述符并退出,
在
第一次运行时将成功,但在第二次运行时仍然会
失败
,即使当时没有其他人
使用
共享内存。那么,关于
在
sh
浏览 0
提问于2013-10-19
得票数 5
1
回答
使用
C
在
Linux中共享内存
、
、
即使目前还有其他进程
打开
共享内存,
使用
shm_unlink是否安全?处理B
shm_open
,然后处理A shm_unlink。B工序可以吗?
浏览 2
提问于2020-10-16
得票数 1
回答已采纳
2
回答
从消息队列接收到后无法
使用
shm_open
、
、
、
、
我试图
使用
以下步骤
在
相同
的代码中实现许多IPC方法: 因此,我怀疑队列中有一些未完成的事情正在阻止进程中的任何进一步调用。 下面是代码中的问题:(刚刚
浏览 1
提问于2019-04-15
得票数 0
2
回答
跨程序的
shm_open
共享内存
、
我正在构建3个多线程程序,它需要访问
相同
的共享内存。父级
使用
此代码来创建共享内存。(shm->name,
O_CREAT
| O_EXCL | O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO); if(shm->fd == -1){MEMORY_SIZE, str
浏览 8
提问于2022-09-26
得票数 0
回答已采纳
1
回答
在
断开和替换共享内存之前修改它可以吗?
、
我有一个场景,进程A
打开
并写入一些共享内存段"foo“,进程B
打开
并读取(只读取)该内存。每当A
重新
启动
时
,它就会清除共享内存文件(这是为了防止陈旧的内存文件逗留,而B则错误地
打开
陈旧的文件)。问题是,如果我
重新
启动A,我基本上会使B正在
使用
的共享内存"foo“失效,并且需要
重新
启动B。我想按照以下步骤来解决这个问题: 每当A启动
时
,它都会查找"foo",但是
在
调用shm_un
浏览 3
提问于2014-10-14
得票数 1
回答已采纳
1
回答
无法从
shm_open
在
MacOS上写入fd
、
、
、
我试图写入并读取
使用
shm_open
打开
的文件描述符。它可以像我预期的那样
在
Linux上工作,但不能在macOS上工作(特别是macOS蒙特雷12.5 21G72)。fcntl.h>#include <string.h> int fd =
shm_open
("/example",
O_CREAT
|
浏览 34
提问于2022-09-17
得票数 3
回答已采纳
1
回答
我需要在共享内存对象上
使用
shm_unlink吗?
、
、
、
为了有效地将数据发送到辅助程序,服务器创建并映射了一个共享内存对象(代码缩写为透明代码): int fd =
shm_open
("/shm_file",
O_CREAT
| O_TRUNC | O_RDWR(除了只读,没有
O_CREAT
和O_TRUNC,即我们假设它已经存在)。解除工作程序中的链接不会删除它,因为服务器仍然
打开
它。当服务器断开链接
时
,文件系统对象将消失。如果我
在
一个工作程序中创建一个共享内存对象,并且不
使用
munmap(.)
浏览 5
提问于2014-05-21
得票数 11
回答已采纳
2
回答
进程不调用shm_unlink的后果
、
主程序创建共享内存从服务器
使用
相同
的
shm_open
行来获取其指向buff的指针。我目前正面临一个错误,
在
主程序杀死了奴隶并试图
重新
启动它之后,奴隶就不能再访问缓冲区了。我不能百分之百确定这是否是问题的原因,但似乎很有可能。要清楚的是,一切都运行良好的第一次通过,它只有
在
第二次奴隶是启动,问题出现。据我所知,没有错误或堆栈跟踪被打印出
浏览 0
提问于2018-11-27
得票数 0
回答已采纳
2
回答
Posix共享内存导致总线错误
、
、
、
、
我
在
mips中
使用了
posix共享内存。节目抱怨:i: 516096
在
x86中执行
相同
的程序是可以的。我想要内核最大支持共享内存大小。int ret;shm_unlink/proc/sys/kernel/shmall ro
浏览 12
提问于2014-10-20
得票数 0
回答已采纳
1
回答
在
没有此标志的系统上模拟O_NOFOLLOW的好方法是什么?
、
、
、
、
我希望能够安全地
在
不支持O_NOFOLLOW的系统上
使用
O_CREAT
| O_WRONLY | O_TRUNC | O_NOFOLLOW和
O_CREAT
| O_WRONLY | O_APPEND |我可以
使用
以下命令
在
某种程度上实现我所要求的:if (lstat(filename, &lst) !} mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOT
浏览 0
提问于2010-05-27
得票数 1
回答已采纳
1
回答
共享内存段映射数据的内存管理
、
、
、
、
我正在用C语言开发一个项目,
在
Linux系统上为IPC
使用
共享内存。但是,我对这些段中的内存管理有点困惑。我在这个项目中
使用了
POSIX API。我理解如何创建共享段,如果不能用shm_unlink()正确地删除它们,这些部分将一直持续到
重新
启动。此外,我了解如何分别
使用
mmap和munmap进行实际映射和取消映射。然而,这些操作的
使用
以及它如何影响这些共享段中存储的数据,让我感到困惑。假设我
使用
带有
shm_open
()
浏览 2
提问于2015-03-28
得票数 1
回答已采纳
2
回答
信号量创建
失败
:文件存在
、
我是c的新手,
在
信号量方面有一些问题。我试图创建这样一个信号量:当我运行这个程序时,会打印错误“信号量
使用
空间创建
失败
:文件存在”(errno)。
浏览 15
提问于2020-11-10
得票数 0
回答已采纳
2
回答
无法
在
两个进程之间
使用
mmap共享内存共享数据
、
MAP_SHARED | MAP_ANONYMOUS, -1, 0); return 0;要求: 1.当我运行
使用
mmap创建的向SHM写入的第一个程序时,我应该能够
使用
分叉的进程验证我所读的内容是否正确。请注意,我不应该为此目的
使用
使用
SHM_OPEN
创建的文件。
在
不需要磁盘文件/文件描述符的情况下,我应该能够创建SHM,
使
两个进程相互读写。 问题
浏览 7
提问于2022-04-06
得票数 0
2
回答
mkstemp()到底是如何工作的?
、
、
、
、
在
man函数的mkstemp页面中,据说该函数生成唯一的
名称
并创建一个具有该
名称
的文件。我认为,当mkstemp()
在
目录中检查该文件名并在实际创建该文件之前发现它是唯一的
时
,另一个程序可以
使用
完全
相同
的
名称
创建该文件(虽然可能性很低,但理论上是可能的)。
尽管
这样,当它
使用
O_EXCL标志
时
,它将无法创建文件。因此,它必须
再次
检查一个新的文件名并创建它。这是mkstemp()工作的
浏览 10
提问于2022-01-16
得票数 1
回答已采纳
1
回答
Linux共享内存只允许读取访问
、
、
但是,
使用
shmget,您只能指定常规权限,而不能区分读写访问。我还考虑切换到
shm_open
& mmap,因为您似乎可以
使用
O_RDONLY
打开
共享内存,这强制
在
mmap调用中
使用
PROT_READ (只读访问)。是否可以
在
父进程中
使用
shm_open
创建两个文件描述符:一个
使用
O_RDONLY,另一个
使用
O_RDWR,然后将O_RDONLY一个传递给子进程,然后子进程可以将其映射到它们
浏览 3
提问于2016-01-25
得票数 2
回答已采纳
2
回答
OSX信号量: sem_open中的参数无效
、
在
尝试
打开
信号量
时
,sem_open
失败
。errno为22 (),perror将其描述为“无效参数”。我已经检查了
名称
的格式(我认为是正确的),以及标志(
O_CREAT
和O_EXCL似乎很难混淆。我更喜欢
使用
无名信号量,但是。| O_EXCL);sem_open(name,
O_CREAT
| O_EXCL, S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH, 0); 来
打开
信号量,但每个信号量都会得到
浏览 0
提问于2012-03-09
得票数 3
1
回答
如何在.PDB调用后强制Visual 2015解锁FreeLibrary文件?
、
、
、
、
在
使用
LoadLibrary("file.dll")加载DLL库之后,visual也会
打开
并锁定file.pdb。问题是--即使
在
调
用了
file.pdb之后,FreeLibrary(...)仍然被锁定。有必要
重新
编译file.dll并
再次
重新
加载它(外部,
在
MSVS之外,
使用
CL.exe),但是编译
失败
了,因为file.pdb仍然被锁定。 如何
使
Visual 2
浏览 3
提问于2016-07-18
得票数 3
回答已采纳
2
回答
如何在Windows上模仿
shm_open
?
、
、
、
现在,如果我
在
一个现代的POSIX系统上,我将
使用
,它将创建一个共享内存段,它在进程
重新
启动期间持续存在,而不是系统
重新
启动,如果持久性数据以某种方式损坏,我可以
使用
来清理它。\\my_service")而不是
shm_open
("/my_service", O_RDWR,
O_CREAT
)。我还没有
在
MSDN文档中找到这些问题的答案:
浏览 0
提问于2009-07-10
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券