我正在尝试使用 NodeJS 编辑现有的二进制文件。
我的代码是这样的:
file = fs.createWriteStream("/path/to/existing/binary/file", {flags: "a"});
file.pos = 256;
file.write(new Buffer([0, 1, 2, 3, 4, 5]));
在 OS X 中,这按预期工作(256..261
被替换的字节0..5
)。
然而,在 linux 中,5 个字节被附加到文件的末尾。NodeJS API 参考中也提到了这一点:
在 Linux 上,当文件以附加模式打开时,位置写入不起作用。内核忽略位置参数并始终将数据附加到文件末尾。
我该如何解决这个问题?