【高手进来】c语言文件操作

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:56:33
c语言:当我往一个文件后面插入一些数据后(就个几十字节),有什么办法可以把这些数据删掉,恢复原来的文件?
不要说把以前属于原文件中的内容复制到另一个文件,然后再把文件覆盖掉(如果文件很大很大呢,太费时的)
跪求高手指教!!
执行效率要高

有点意思:
试试这个:
long count,size;//设size就是那几十个字节数,长整形
fseek(fp,0L,SEEK_END);//先定位到文件末尾
for(count=1L;count<=size;count++)//只处理这几十个字节
{
fseek(fp,-count,SEEK_END);//从文件倒数第一个字符开始
fputc('\0',fp);//置空
}
......
当然文件要以读写方式打开。
下面的程序经过测试。
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
int handle;
long size;

handle =open("weiw.FIL", O_RDWR);/* O_RDWR以读写方式打开文件 */

size=filelength(handle);/*求文件字节数*/
printf("File length in bytes: %ld\n",size);
chsize(handle, size-16);/*改写文件字节数,这里16是随便定的一个数*/
size=filelength(handle);/*重新求文件字节数*/
printf("Now file length in bytes: %ld\n",size);

close(handle);/*改写并关闭文件*/

system("pause");
return 0;
}

还可以考虑用fgets()函数读