【发布时间】:2011-10-19 21:10:26
【问题描述】:
将全零写入文件的最有效、最快捷的方法是什么?包括错误检查。它只是fwrite吗?还是涉及 fseek?
我在别处看过类似的代码:
off_t size = fseek(pFile,0,SEEK_END);
fseek(pFile,0,SEEK_SET);
while (size>sizeof zeros)
size -= fwrite(&address, 1, sizeof zeros, pFile);
while (size)
size -= fwrite(&address, 1, size, pFile);
其中 zeros 是我怀疑的文件大小数组。不确定 off_t 到底是什么,因为它对我来说并不是直接直观的
【问题讨论】:
-
off_t是一种类型,例如可以是unsigned int用于表示偏移量。实际上,代码看起来还不错。 -
您是否需要确保实际擦除磁盘上的位,或者是否足以使它们无法通过普通文件系统 API 访问?
-
这不能回答我的问题。让我尝试另一种方式:如果有人卸载您的文件系统并使用取证实用程序检查硬盘驱动器的原始内容,并且他们在您用零覆盖之前找到文件中的位,会会坏吗?
-
其实我还有一个问题:如果你只是用
remove删除这个文件会出现什么问题?