c语言将内容存到外部文件,那没用的内容怎么删掉,将那些没用内容占的空间重新利用
“Devil组”引证GPT后的撰写:
下面是一个示例代码,假设要删除文件data.txt中第2个字符:
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("data.txt", "rb+"); // 以二进制可读写模式打开文件
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
// 移动文件指针到第2个字符位置
fseek(fp, 1, SEEK_SET);
// 将新的内容写入该位置
fputc('X', fp);
// 获取当前文件指针的位置
long pos = ftell(fp);
// 截断文件
int result = ftruncate(fileno(fp), pos);
if (result == -1) {
printf("Failed to truncate file\n");
return 1;
}
fclose(fp);
return 0;
}
用ftruncate()函数截断文件可能会导致数据丢失,因此在使用该函数之前应该确保数据已经备份或不再需要。