【发布时间】:2020-04-18 04:35:02
【问题描述】:
正如标题所暗示的,我试图在与我正在运行的程序相同的目录中打开一个文本文件。这是我正在使用的代码:
int main(int argc, char *argv[]){
FILE *filePtr;
filePtr = fopen("something.txt", "r");
if (filePtr == NULL){
printf("Oh dear, something went wrong with read()! %s\n", strerror(errno));
return 1;
}
return 0;
}
打印出来:
Oh dear, something went wrong with read()! No such file or directory
我也尝试过使用fopen("./something.txt", "r");,但同样的事情发生了。
【问题讨论】:
-
您确实在使用 minix?
-
相对路径不是相对于程序,而是相对于程序的当前工作目录。您确定 cwd 与文件的位置相同吗?你可以先尝试打印,
printf("CWD: %s\n", getcwd()); -
那个文件是否存在于那个位置? (
ls /显示了吗?) -
"with read()" 错误,什么?在您显示的代码中没有对
read()的调用。 -
关于:` printf("天哪,read() 出了点问题!%s\n", strerror(errno));` 错误信息应该输出到
stderr,而不是@ 987654328@。强烈建议:fprintf( stderr, "Oh dear, something went wrong with fopen()! %s\n", strerror(errno));