【发布时间】:2015-02-19 20:35:08
【问题描述】:
目前我在尝试打开文件时遇到以下问题,无论我给它什么,该功能似乎都无法打开文件。我目前正在传递“./input.txt”,它是与可执行文件位于同一目录中的文件。你们看到的代码有什么明显的错误吗?
FILE* openInputFile(char* inputFileName)
{
FILE* ifp= NULL;
printf("%s\n", inputFileName);
ifp = fopen(inputFileName, "rb");
if(ifp == NULL)
{
printf("Error opening input file.\n");
}
return ifp;
}
【问题讨论】:
-
你使用的是 windows 还是 unix?
-
否;可以挑选一些次要的尼特,但我没有看到任何主要的。您的问题可能是您的进程的当前目录不是您认为的目录。当前目录将是启动进程的 shell 的当前目录,而不是在其中找到代码的目录。您可以通过
strerror()从errno打印错误以查看发生了什么问题,但它可能只是说“没有这样的文件或目录”。您可以使用getcwd()打印出工作目录。 -
@ojblass:标签说“Linux”。
-
代码对我来说看起来不错。将一些带有实际错误代码的 printf 放在那里会很有用。
-
将错误后的 printf 更改为 perror - 这将解释失败