使用fopen时一定注意,特别是在打开多个文件的情况下,每次的fopen使用要紧跟fclose
如
FILE * fp;
char msg[100];
if ((fp = fopen(ReadCfg_Path_Bind, "rb")) == NULL) {
fp = NULL;//需要注意
fp = fopen(ReadCfg_Path_Bind, "w"); //创建文件
if (NULL == fp)
MessageBoxA(NULL, "权限出现问题,请以管理员方式运行。", "1", NULL);
fp = NULL;//需要指向空,否则会指向原打开文件地址
if (fp != NULL)
fclose(fp);
}
//释放文件
if (fp != NULL)
{
fclose(fp);
fp = NULL;
}
if ((fp = fopen(ReadCfg_Path_Core, "rb")) == NULL) {
fp = NULL;//需要注意
fp = fopen(ReadCfg_Path_Core, "w"); //创建文件
if (NULL == fp)
MessageBoxA(NULL, "权限出现问题,请以管理员方式运行。", "2", NULL);
fp = NULL;//需要指向空,否则会指向原打开文件地址
if (fp != NULL)
fclose(fp);
}
//释放文件
if (fp != NULL)
{
fclose(fp);
fp = NULL;
}
每次的释放文件是必须的,虽然不用重新使用File对象
经过试验在fopen调用一千次而一次fclose都不调用的情况下,调用fopen就会返回NULL值,所以这两个函数必须成对使用
如果是要循环调用fopen就必须和fclose成对使用