我正在尝试(如标题所示)从文件读取到main,使用argc和argv,从命令行获取文件名并将其传递给void函数,该函数打开,读取和写入。但是我正在Cannot open file...
Segmentation fault
。
void file_pass (char * argv[])
{
FILE *file_name;
if ((file_name = fopen(argv[1], "r")) == NULL)
{
printf("Cannot open file ...\n");
}
fclose(file_name);
}
这让我觉得它没有正确打开文件,但我不确定原因。
答案 0 :(得分:4)
在您的函数is_true
-
void file_pass (char * argv[])
而不是这个,你应该试试这个 -
if ((file_name = fopen(argv[1], "r")) == NULL)
因为数组索引以if ((file_name = fopen(argv[0], "r")) == NULL) // file's name is in argv[0] in funciton
开头,而函数0
可能不包含任何内容。