如果进程是SIGKILL,OS(POSIX)是否刷新内存映射文件?

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

Solutions Collecting From Web of "如果进程是SIGKILL,OS(POSIX)是否刷新内存映射文件?"

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

我自己提出了一个类似的问题,然后当我不满意答案的时候跟进了示范代码。 请参阅mmap,msync和linux进程终止