我知道当你调用
首先,操作系统在哪里管理这些缓冲区以及如何管理?其次,如果你将内容写入文件,并稍后读取你写入的内容,假设操作系统在你写入和读取之间没有刷新内容,它如何知道必须从缓冲区返回读取?它如何处理这种情况?
我想了解这个问题的原因是我有兴趣在用户空间实现自己的缓冲方案,而不是像操作系统一样在内核空间中实现。也就是说,写入文件将被缓存在用户空间中,实际写入只会在某个特定时间点发生。因此,我还需要处理仍然在缓冲区中的内容被读取的情况。是否可能在用户空间中完成所有这些工作?
fwrite
或fprintf
或其他写入文件的函数时,内容并不会立即刷新到磁盘,而是被缓存在内存中。首先,操作系统在哪里管理这些缓冲区以及如何管理?其次,如果你将内容写入文件,并稍后读取你写入的内容,假设操作系统在你写入和读取之间没有刷新内容,它如何知道必须从缓冲区返回读取?它如何处理这种情况?
我想了解这个问题的原因是我有兴趣在用户空间实现自己的缓冲方案,而不是像操作系统一样在内核空间中实现。也就是说,写入文件将被缓存在用户空间中,实际写入只会在某个特定时间点发生。因此,我还需要处理仍然在缓冲区中的内容被读取的情况。是否可能在用户空间中完成所有这些工作?
stdio
没有进行系统调用,对其他人来说这些更改是看不见的。 - undefined