如何使用c/c ++编程在文件开头添加数据?我试过以下代码:
fstream file;
stmt.open(L"d:\\xyz.txt",ios::in|ios::out|ios::app);
Run Code Online (Sandbox Code Playgroud)
但是这会附加在文件的末尾.
你不能这样做.
只使用标准的C或C++,如果你想以原子方式进行,你必须将所有内容写入一个新文件(即新数据和旧文件),然后将文件移过.如果你想冒风险,你可以读取一个数据块,并在开头写入新内容并逐块向上移动数据(但如果有什么东西打扰你,你就破坏了文件).
如果您可以访问内存映射,则可以尝试不同的方法:内存映射整个文件,memmove按所需的偏移量,memcpy将新数据映射到初始段.