关于关闭文件的操作函数fclose()

来源:互联网 发布:中国自大 知乎 编辑:程序博客网 时间:2024/06/06 01:28

     这两天学习到对文件的操作,对于文件的标准操作流程是:

     用fopen()这个函数打开文件,之后通过fopen()返回的指针对文件进行读写操作,操作完成之后调用fcolse()的函数来关闭文件。

 

     但是不知道大家注意到没有,关闭文件函数fclose(),要求传入的只是文件的指针,假设是fp,在函数的内部可能通过传入的这个指针实现了对通过fopen分配的内存进行释放以及把文件缓冲区的内容写入文件,但是并不能在函数内部对fp赋空,这样在释放掉通过fopen()分配的内存后,FILE* 类型的指针fp也就成为了一个野指针。

    

     fclose( fp )已经close了文件,释放掉了 fp  所指的内存,fp 却没有被赋空,fp 也就成了一个野指针!

 

    不知道为什么标准库函数会这么设计,我猜想也许是因为一些历史原因,那些大师们应该不会犯这样的错误!

 

    

 

    以上只是我个人的见解,若有什么地方理解错误,欢迎指出!