使用argc和argv读取文件

时间:2015-10-22 17:47:19

标签: c arrays file argv

我正在尝试(如标题所示)从文件读取到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);

}

这让我觉得它没有正确打开文件,但我不确定原因。

1 个答案:

答案 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可能不包含任何内容。