我需要按顺序将单个文件指针重新分配给多个文件。
我在字符串路径中正确拥有文件路径。
当我将路径和文件指针传递给重新分配的函数时,我得到“Aborted(core dumped)”..
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吗?以及如何...
或任何其他选项??
答案 0 :(得分:4)
在致电fptr
之前,您不会检查NULL
是否fclose
。
在定义中将fptr
初始化为NULL
,然后在致电NULL
之前检查它是否为fclose
(或freopen
实际上是您的'{1}}在这里做。)
答案 1 :(得分:0)
您是否正在调用close()函数:
[1]作为一种初始化文件指针的方法?
[2]或者您是否尝试关闭以前打开的文件?
如果是这样的话:
[1]您可以使用以下内容初始化指针:
fptr = NULL;
fptr = fopen(path, "r");
[2]我建议在使用fopen()的同一函数中调用close()
我建议您使用错误返回代码而不是exit(),因为这是一种更优雅的方式来终止您的程序。与在整个代码中使用exit()函数相比,错误代码更容易调试和遵循程序逻辑。