如何写入fd替换相同长度的原始数据?

时间:2016-12-29 09:06:17

标签: c posix

我有一个文件描述符,现在我想写n个字节到该文件替换原始数据的n个字节(因此总文件大小不会改变),就像在文字处理器的替换模式中一样。有什么方便的方法来实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

只需write到fd。您可能需要read之前到正确的位置,或lseeklseek64直接到正确的位置。

您必须确保fd是可写的。您需要检查open。必须使用openO_WRONLYO_RDWR调用O_TRUNC,这会将文件截断为零长度。

注意:如果您在文件末尾进行写操作,write只会更改(增加)文件。如果您正在写入文件,它的大小不会改变。