c++ - 如果进程被 SIGKILLed,操作系统(POSIX)是否刷新内存映射文件?

标签 c++ c linux unix posix

如果一个进程被 SIGKILL 杀死,它对内存映射文件所做的更改是否会刷新到磁盘?我假设如果操作系统确保在进程通过 SIGKILL 终止时将内存映射文件刷新到磁盘,那么它也会使用其他终止信号(SIGABRT、SIGSEGV 等)这样做。

最佳答案

这取决于内存映射文件是否以私有(private) (MAP_PRIVATE) 或不 (MAP_SHARED) 修改打开。如果是私有(private)的,那么没有;修改不会写回磁盘。如果共享,内核缓冲池包含修改后的缓冲区,这些缓冲区将在适当的时候写入磁盘 - 无论死因如何。

关于c++ - 如果进程被 SIGKILLed,操作系统(POSIX)是否刷新内存映射文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/863523/

相关文章:

c++ - 如何通过函数参数返回指向参差不齐的数组的指针?

c - AGGREGATE 中的最终函数不会在 PostgreSQL 中运行

objective-c - 如何检查两个格式字符串是否兼容?

linux - bash 脚本不能通过 crontab 工作

linux - 在 Linux x86-64 上升级 SOS-BERLIN 作业调度程序困惑

c++ - 在 NCurses 中滚动但包裹垫

c++ - 从文本文件加载链接列表并打印时无限循环

c++ - 如何启动 MFC SDI 应用程序处于非事件状态?

c - 除了使用预处理器指令之外,还有其他方法可以避免类型冲突吗?

linux - AppArmor 如何处理 "Environment Scrubbing"?