在C语言的文件操作函数中,若在最后不关闭文件也可以完成追加、重写等操作,若不关闭会有什么后果?

如题所述

第1个回答  2013-03-30
后果如下:
文件打开后,可能有一些操作被缓冲在内存中,若不正常关闭,缓冲在内存中的数据就不能真正写入到文件中,可能造成数据丢失。
文件是系统中的一种资源,打开文件是对资源的占用,若不关闭,则别的程序就不能使用此资源。
比如你给文件追加写了一句话到文件中,但没有关闭,就可能那句话还存放在内存缓冲区中,还没有被真正的写入到文件。你打开文件也找不到刚刚写入的那句话
-物联网校企联盟技术部追问

但是当我没写fclose时我打在屏幕上的信息还可以正常地写入文件中,求赐教!!!

追答

只是说有可能,在内存存放一定量的数据后就会写入文件,当然,有些时候系统也可能把程序缓冲区的数据写入文件再让程序退出

追问

谢谢啊!

本回答被提问者采纳

...不关闭文件也可以完成追加、重写等操作,若不关闭会有什么后果?_百 ...
后果如下:文件打开后,可能有一些操作被缓冲在内存中,若不正常关闭,缓冲在内存中的数据就不能真正写入到文件中,可能造成数据丢失。文件是系统中的一种资源,打开文件是对资源的占用,若不关闭,则别的程序就不能使用此资源。比如你给文件追加写了一句话到文件中,但没有关闭,就可能那句话还存放在...

C语言子函数中fopen文件后必须要fclose吗
是的,在使用完一个文件后应该关闭它,这应该成为一个习惯。如果不关闭文件,可能会丢失数据。因为在向文件写数据时,实现将数据输到缓冲区,待缓冲区充满后才正式输出给文件,如果当数据未充满缓冲区而程序结束运行,就会将缓冲区中的数据丢失。用fclose函数关闭文件,他先将缓冲区中的数据输出到磁盘文件...

C语言 文件操作 如何末尾追加内容?
不需要打开2次文件的吧?只需要用"a+"的方式就可以了:这个的作用是没有文件就新建一个,有了就追加数据,一般打日志都是这么做的...int ErrLog( char *caMsg ){ char caFileName[20];FILE *fp = NULL;memset( caFileName, 0x00, sizeof( caFileName) );sprintf( caFileName,...

C语言 | 文件打开关闭
C语言使用fclose函数关闭数据文件,fclose函数的一般调用形式为。在完成文件操作后应关闭文件,防止误用。关闭文件即撤销文件信息区和缓冲区,使得文件指针变量不再指向文件,即与文件解绑,此后不能再通过该指针对原文件进行读写操作,除非重新打开以重新绑定文件指针。

以下叙述中正确的是( )。A.当对文件的读(写)操作完成之后,必须将它关闭...
原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。c)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。故本题答案为A)。

求助一个c语言编写的文件操作函数
【原文件数据】无法操作的定义是:不能再对【原文件数据】执行添加,删除,插入等。因此,你要在【原文件数据】的开头插入数据,可能要绕个弯子:1.用只读模式("a") 先读出【原文件数据】,保存到内存 2.用只写模式(“w”)清除【原文件数据】3.文件开头插入的信息。4.再追加【原文件数据】(...

C语言文件操作问题,用fread读取一个文件,读完全部内容后文件指针是不...
可以用ferror和feof检测是否到达文件结尾 用fgetc会读到EOF

c语言的文件操作
完成文件操作后,需要关闭文件以释放系统资源。可以使用`fclose`函数来关闭文件。如果关闭文件失败,可能会导致数据丢失或其他问题。C语言的文件操作主要围绕文件指针展开。通过文件指针,我们可以对文件进行各种操作。在打开文件时,我们需要指定文件的路径和打开方式,以便程序能够正确地读取或写入文件。文件的读...

C 语言对文件操作
以下是一些关键的文件操作函数及其功能描述:具体示例:首先,使用fopen函数以写入模式("w")打开一个名为test.txt的文件。之后,通过fprintf函数向该文件写入两行文本。完成写入后,使用fclose函数关闭文件。接着,重新打开同一个文件,但这次是以读取模式("r")打开。随后,使用fgets函数从文件中读取...

C语言文件操作函数总结
相关函数 feof表头文件 #includestdio.h定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。返回值fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表头文件 #includestdio.h定义函数 int fclose(FILE * stream);函数说明 fclose()用来关闭先前fopen()打开的...

相似回答