关闭提前退出的程序的文件句柄时的Linux 3.14策略
Linux 3.14 policy when closing file handles of a program that exited prematurely
假设程序打开内存映射文件进行写入。将内容写入文件后,它立即调用exit(0)。现在我的问题是内核在这种情况下会做什么?它是在关闭文件描述符时将内存映射区域的内容刷新到文件,还是丢弃缓冲区中的内容?
两者都没有。它不会丢弃数据。通过内核中的文件/页面缓存映射的数据,将在内核认为方便的时候(或者直到程序显式发出msync()调用)刷新到磁盘。这与在文件描述符上执行普通write(),然后关闭该文件描述符,或者退出程序时发生的情况基本相同。
请记住,对该文件的访问通过相同的内核缓存,因此无论进程是否崩溃,其他进程都会立即看到您写入的数据。(不过可能受到记忆障碍的影响)。
相关文章:
- 在C++/Linux中设置单调时钟的一些技巧
- Linux的Cpp上的计时器
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如何在linux终端中同时编译和运行c++代码
- 在Linux for Windows上编译C++代码时出错
- 如何找到锁定Linux futex的C++行
- 在linux上调试巨大的C++项目
- C++17中的并行执行策略
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- c++方法参数只能在linux的发布模式下自行更改
- 在Linux和C++中的Windows上,散列字符串值会产生不同的输出
- 这里在 Linux 中具有"CreatePipe"和"CreateProcessW"功能吗?
- 函数在Windows或Linux上运行时表现不同
- 在Linux下捕获SIGKILL的C++程序
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- Linux 上 pthread 互斥锁的默认优先级继承策略
- 关闭提前退出的程序的文件句柄时的Linux 3.14策略