将0x00覆盖到文件C中

时间:2011-09-24 15:07:31

标签: c fwrite

#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;
}

我想&#34;安全删除&#34;用0x00覆盖它的文件...就像/ dev / zero那样做! 我该怎么做? 我打开了文件,我检查了他的长度......现在呢?

1 个答案:

答案 0 :(得分:2)

首先,你只是打开阅读:

fp=fopen("prova" , "rb");

你需要:

fp=fopen("prova" , "w+");

之后,您只需要将零写入文件,直到您使用fputc()fwrite()确定已经确定的长度

虽然根据操作系统确实可能无法解决您的实际问题。最终可能会将文件写入磁盘上的其他区域(从而保持原始数据不变)