没有这样的文件或目录和分段错误 - 打开文件

时间:2015-11-24 12:09:01

标签: c file fopen

当我给函数文件的目录(比如/home/username/filename.txt)时,我得到了错误:

  

没有这样的文件或目录   分段错误(核心转储)

获取名称的部分工作正常,但fopen()返回NULL 我的功能代码是:

#define L_SIZE 128
FILE* openFile()
{
    char dir[L_SIZE];

    printf("Enter the file's directory: ");

    if(fgets( dir, L_SIZE, stdin ))
    {
        printf("\nWe got the directory: %s\n",dir);
        FILE* fp;
        if ( (fp = fopen( dir, "r" )) == NULL )
        { 
            perror("An error has occured");
            return NULL;
        }
        else
        {
            return fp;
        }
    }
    else
    {
        printf("Sorry, An error has occurs.\n");
        return NULL;
    }
}

1 个答案:

答案 0 :(得分:2)

问题可能与您使用fgets()获取输入有关:返回路径将包含\ n char。

尝试删除它(例如,使用strtok(dir, "\n");),它会起作用。