我想清空一个文件,我有两种方法:
1)使用CreateFile函数和dwCreationDisposition = TRUNCATE_EXISTING!
2)打开文件,使用SetFilePointerEx将文件指针设置为文件的开头,然后调用SetEndOfFile!
有什么区别吗?我应该用哪一种?
发布于 2013-09-11 12:31:24
从本质上讲,这两种方法都将实现相同的目标,而且您必须对文件进行大量的“清空”,才能分辨出性能上的差异--如果文件很大,从文件分配中释放不再使用的块将是主要的时间。
当然,如果您想要更多的可移植代码,使用ofstream of("myfile.ext");
也会实现这一点,FILE *f = fopen("myfile.ext", "w");
也会实现这一点(以及在同一主题上的一些变化)。
总的来说,这些变体之间的差别很小,这主要是关于您当前正在处理的代码中最有意义的部分。换句话说,“您接下来要对现在的空文件做什么”,以及您可能需要什么样的“处理”。
发布于 2019-03-08 12:14:29
使用CreateFile函数与
dwCreationDisposition = TRUNCATE_EXISTING
!
使用
SetFilePointerEx
打开文件并将文件指针设置为文件的开头,然后调用SetEndOfFile
!
dwCreationDisposition
标志决定。0123456789
然后编写zxc
,这就是文件现在的样子:
zxc3456789
我坚信,它们应该允许TRUNCATE_EXISTING
和OPEN_ALWAYS
的组合更好地处理特定的情况。
https://stackoverflow.com/questions/18741236
复制相似问题