如果您使用 mmap
来读取或写入文件,请不要假设它在所有文件上都有效,或者在所有文件上都失败。它可能在某些文件上有效,而在另一些文件上失败。
使用 mmap
的正确方法是尝试在您想要使用的特定文件上使用它——如果 mmap
不起作用,则退回到使用 read
和 write
以另一种方式完成工作。
需要采取此预防措施的原因是,GNU 内核 (HURD) 提供了一个用户可扩展的文件系统,其中可以有许多不同类型的“普通文件”。它们中的许多支持 mmap
,但有些不支持。重要的是使程序能够处理所有这些类型的文件。