0
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
int size;
FILE *fp;
fp=fopen("prova" , "rb");
if(fp == NULL){
printf("%s",strerror(2));
return EXIT_FAILURE;
}
/* Controllo lunghezza file */
fseek(fp, 0, SEEK_END);
size=ftell(fp);
fseek(fp, 0, SEEK_SET);
/* --- */
for(i=1; i<=size; i++){
qualcosa
}
fclose(fp);
return EXIT_SUCCESS;
}
我想通过用0x00覆盖它来“安全删除”文件......就像/ dev/zero做的那样! 我该怎么做? 我打开了这个文件,我已经检查过他的长度了......现在呢?覆盖0x00到一个文件C
打开文件并以NUL字节写入其长度不会安全地删除该文件;大多数操作系统并不能保证你正在写的东西会被写入文件最初占用的磁盘扇区。 –
是的,我知道但被覆盖的文件是不可恢复的。像ext3,4 HFS,btrfs,NTFS等文件系统恢复文件的元数据,没有竞争对手... – polslinux
确实文件本身可能完好无损地恢复,但你特别要求“安全”删除,这意味着数据被删除是敏感的。如果数据本身潜藏在无关联的行业中的可能性很高,那么通过提供虚假的安全感,您已经损害了客户的利益。 –