两次fopen不同的文件返回相同的FILE* 地址
摘要:
最近接触一个垃圾程序,出现一个奇怪的bug,现象是两次fopen不同的文件返回相同的FILE*地址,第二次返回的FILE*有时候无端端的就被关闭了。以下代码是对这个bug的概括:auto fp1 = fopen("c:/1.txt", "rb"); char buff[10]; assert(fread(buff, 1, 10, fp1) == 10); // 垃圾程序关闭fp1时没有至fp1=nullptr fclose(fp1);// 微软的crt对FILE*使用缓存机制,所以这里返回的fp2==fp1,可参考stream.c里的_getstream 阅读全文
posted @ 2013-07-14 16:45 rickerliang 阅读(890) 评论(2) 推荐(0)
浙公网安备 33010602011771号