如果可以保证查找后有数据写入,那么使用fseek
在文件开头保留字节是否安全?例如:
// reserve space
fseek(f, 4096, SEEK_SET);
// ...
// write some data after the reserved space
fwrite(buf, 1, bufsize, f);
// go back to the reserved space (to update it)
rewind(f);
// ...
我注意到它可以在 Windows 上运行,但是其他平台呢?有什么需要注意的问题吗?
最佳答案
是的,这很好用。只要您以 w
或 w+
模式而不是 a
或 a+
模式打开文件,您就可以可以查找文件中的任何一点并在那里写入,并且它将写入文件中的该点。文件的其他部分将保持不变;如果它们从未被写入,它们将包含零字节。
因此,如果您对刚刚以 w
模式打开的文件执行以下操作(首先截断文件):
fseek(f, 10, SEEK_SET);
fwrite("abc", 1, 3, f);
rewind(f);
fwrite("1234567890", 1, 10, f);
文件的内容将是:
1234567890abc
关于c - 使用 fseek 保留空间安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40429643/