如果一个进程被 SIGKILL 杀死,它对内存映射文件所做的更改是否会刷新到磁盘?我假设如果操作系统确保在进程通过 SIGKILL 终止时将内存映射文件刷新到磁盘,那么它也会使用其他终止信号(SIGABRT、SIGSEGV 等)这样做。
最佳答案
这取决于内存映射文件是否以私有(private) (MAP_PRIVATE) 或不 (MAP_SHARED) 修改打开。如果是私有(private)的,那么没有;修改不会写回磁盘。如果共享,内核缓冲池包含修改后的缓冲区,这些缓冲区将在适当的时候写入磁盘 - 无论死因如何。
关于c++ - 如果进程被 SIGKILLed,操作系统(POSIX)是否刷新内存映射文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/863523/