[英]reassign a file pointer in loop
我需要将一个文件指针重新分配给多个文件。
我在字符串路径中正确具有文件路径。
当我将路径和文件指针传递给要重新分配的函数时,出现“异常终止(核心已转储)”的信息。
FILE * fptr; //Global file pointer
FILE * getfptrr(char * path)
{
fclose(fptr);
fptr = fopen(path, "r");
if(fptr!=NULL)
return fptr;
else
{
printf("\n Something's Wrong!!! \n");
exit(1);
}
}
我应该使用frepoen吗? 如何...
还是其他选择??
在调用fclose
之前,不要检查fptr
是否不为NULL
。
在定义中将fptr
初始化为NULL
,然后在调用fclose
(或freopen
,实际上是您在此处所做的操作)之前检查它是否不为NULL
。
您是否在调用close()函数:
[1]作为初始化文件指针的一种方法?
[2]还是您要关闭以前打开的文件?
如果是这样的话:
[1]您可以使用以下方法初始化指针:
fptr = NULL;
fptr = fopen(path, "r");
[2]我建议在使用fopen()的同一函数中调用close()
我建议您使用错误返回码而不是exit(),因为这是终止程序的一种更优美的方法。 与在整个代码中拥有exit()函数相比,错误代码使调试和遵循程序逻辑更加容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.