回写mmaped文件期间发生I / O错误

问题描述

在mmap写回过程中是否存在用于处理错误的标准(POSIX等)操作系统行为? 甚至在某个地方将其记录为稳定的实现吗?

情况1: 一些程序执行mmap(),写入该存储区,然后执行munmap()msync(MS_SYNC)。在这种情况下,有一个明确的地方可以报告写回错误 ,但是我不知道是否应该以任何标准在munmap() / msync()上报告这些错误。

情况2: 某些程序执行mmap(),写入该存储区,然后执行sleep(1000)。写回应该由OS异步完成,但是现在没有明确的位置可以报告写回中的任何错误。但是,操作系统可以将SIGBUS发送到程序。同样,我不知道这是否标准化。

情况3: 两个程序(A和B)对同一文件执行mmap(MAP_SHARED)。程序A向该内存中写入内容,程序B应该立即看到此更改并可能依赖于它们。一段时间后,操作系统在尝试回写时出错。现在,我看到它是唯一合理的行为,它会杀死两个进程,因为它们依赖于无法进行的更改。但这看起来很奇怪。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...