我用评论简化了这个程序,如下所示:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE * in;
in = fopen(argv[1], "r");
fclose(in);
fprintf(stderr, "clear **** \n");
return(0);
}然而,它仍然存在缺陷。输出为:
clear
Segmentation Fault我知道这是导致问题的原因,但我不知道为什么。无论出于什么原因,fclose(out)都工作得很好。
发布于 2013-03-31 12:10:51
你应该做的第一件事是:
in = fopen(argv[1], "r");
if (in == NULL)
printf ("Could not open file '%s'\n" argv[1]);
else
fclose(in);在您的原始代码中不能保证fopen确实在工作,在这种情况下,它将返回NULL,并且fclose将不会被定义为行为。
https://stackoverflow.com/questions/15726223
复制相似问题