读书人

C++中不小心延续使用了两次close()函数

发布时间: 2012-10-16 09:57:37 作者: rapoo

C++中不小心连续使用了两次close()函数
比如我fstream iofile;
iofile.open("...",ios::in|ios::out|ios::binary);
iofile.close();
iofile.close();这样用了两次close函数会有影响吗?

[解决办法]
应该没有影响

.close()后会把句柄置零

虽然fclose(0)是不行的,但是fstream会检查句柄是不是0,不是0才调用fclose,所以是安全的
[解决办法]

探讨

那如果我不是用fstream定义的变量而是用ifstream或者ofstream定义的呢?引用:

应该没有影响

.close()后会把句柄置零

虽然fclose(0)是不行的,但是fstream会检查句柄是不是0,不是0才调用fclose,所以是安全的

读书人网 >C++

热点推荐