|
|
1
8
各种映射函数将所提供标量的字符串缓冲区设置为映射内存页。操作系统会将对该缓冲区的任何更改反映到文件中,反之亦然。 使用mmap的正确方法是 修改 字符串缓冲区,而不是替换它。
警告:如果收缩缓冲区,模块不会发出警告,即使这没有任何效果,只是用NUL对其中一个字节进行重击。
ticket .
|
|
|
2
6
在“简单性”标题下。
Warnings 我们有:
也就是说,除非可以在适当的位置修改字符串缓冲区,否则通过mmap'd变量进行写入是没有效率的(字符串必须首先组装并存储在内存中,然后才复制到文件中)。如果您对此满意,可以使用禁用警告
在这种情况下,您试图将缓冲区写入自身。当一个标量实际上被就地修改时,就会发生这种情况。其他情况是替换字符串缓冲区时的变通方法(例如,因为它被覆盖:
但这对您没有帮助,因为不能使用固定大小的映射缓冲区就地增长字符串。
无法更改文件的大小。这不是因为File::Map,而是因为底层
如果需要编辑文件(尤其是小文件),我建议使用
|