关于C++文件操作时遇到_VALIDATE_CLEAR_OSSERR_RETURN断言的解决方法

在Debug一个C++程序的时候发现一个这样的断言中断:

_VALIDATE_CLEAR_OSSERR_RETURN((_osfile(fh) & FOPEN), EBADF, -1);

这个意思应该是说,在读写某个文件的时候,这个文件的句柄已经失效的,原因可能是这个文件没有打开或是文件被关闭了,这也是我程序里发现的问题。
一个比较好的编程习惯时,在fclose(fp)之后,应该要把相关的文件指针立即赋值为NULL,防止野指针的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数。fopen函数的原型为 FILE* fop...
    朱森阅读 4,262评论 0 1
  • C/C++输入输出流总结 前两天写C++实习作业,突然发现I/O是那么的陌生,打了好长时间的文件都没有打开,今天终...
    LuckTime阅读 5,693评论 0 6
  • #include void test1() { /* w:(1)文件存在,将文件清空,再进行写,(2)文件不存在,...
    踩在浪花上00阅读 2,144评论 0 0
  • 之前系列中内容有介绍过 PDO 进行数据库查询并显示数据,这回将描述如何通过它向表中插入数据。 小实践 接下的内容...
    chansey阅读 7,204评论 0 1
  • 昨天我的好朋友苏打糖发给我一份自己做的今年上海书展的全攻略,我这才意识到,又是一年上海书展进行时。 我还记得去年的...
    小池琪阅读 3,933评论 0 0

友情链接更多精彩内容