我想读取一个文件并更改其内容并将其写回文件。
我使用 open
读取文件如下:
bfd = open(m_file_name.c_str(), O_RDWR)
但是当我写的时候,它有点像附加到旧的。我怎样才能覆盖它?
最佳答案
您可以使用lseek(2)
bfd = open(m_file_name.c_str(), O_RDWR);
// read your file
lseek(bfd, 0, SEEK_SET);
// do whatever manipulation & write file
如果您的文件现在比原始文件小,您需要将大小截断为新大小,否则您将在文件末尾保留旧文件末尾的字节。如果它更大,文件应该会在您写入时自动增长。
关于c - 用 O_RDWR 打开——如何覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801315/