fstream从二进制文件的末尾删除n个字节
fstream delete N bytes from the end of a binary file
是否可以使用fstream
(或类似的内容)从C 中的二进制文件的末尾删除n个字节?我不想阅读整个文件,将其剪切并再次写入,但是由于从文件的末尾开始,似乎应该不是一个问题。
我不知道无需编写新文件即可执行此操作的通用C (平台独立)。但是,在POSIX系统(Linux等)上,您可以使用ftruncate()
函数。在Windows上,您可以使用SetEndOfFile()
。
这也意味着您需要使用本机函数而不是fstream
打开文件,因为您需要这些功能的本机描述符/句柄。
编辑:如果您能够使用boost库,则它在其文件系统库中具有resize_file()
函数,该功能将执行您想要的操作。
更新:
现在在C 17中您可以使用文件系统中的resize_file
生活在coliru
如果您要使用QT,QFile
还提供了两个resize()
方法,允许截断文件。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 将数组的地址分配给变量并删除
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C/C++编译器通常会删除重复的库吗
- 从链接列表c++中删除一个项目
- C++如何通过用户输入删除列表元素
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 一种从内存中删除 UTF 字节的方法?
- 复制后删除原始数组指针将前 3 个字节设置为 0
- C++ 在请求特定字节的新建后删除
- 如何从 C 或 C++ 格式的文件中删除字节?
- 删除字节数组 : Qt 缓冲区之间的空字符 (\x00)
- winsock上的蓝牙,如何删除字节顺序标记
- 删除字节转换的char*
- fstream从二进制文件的末尾删除n个字节
- 在Windows上添加/删除文件末尾的字节
- 在Windows上,从文件中删除前N个字节的最有效方法是什么
- 删除内存字段(数组)中的单个字节
- 如何删除前3个字节的缓冲区
- 删除文件中间的字节而不移动末尾