fopen无法打开文件的原因是什么?

时间:2011-12-26 07:48:57

标签: c fopen

我在以下代码中尝试打开文本文件。

char frd[32]="word-list.txt";
   FILE *rd=fopen(frd,"rb");
   if(!rd)
       std::cout<<"Coudn't open file\t"<<frd;

我正在使用vc 2010,该文件位于此项目的调试目录中。 谁能告诉我为什么它无法打开文件?

4 个答案:

答案 0 :(得分:7)

#include<stdio.h>
#include <errno.h>

int main()
{
errno = 0;
FILE *fb = fopen("/home/jeegar/filename","r");
if(fb==NULL)
    printf("its null");
else
    printf("working");


printf("Error %d \n", errno);


}

这样如果fopen失败,那么它会设置错误号,你可以在这里找到那些错误号列表http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html

答案 1 :(得分:1)

查看在发生错误时设置的errno变量。它是一个全局变量。它已经有一段时间了,但可能包括errno.h,它将为您提供定义。

答案 2 :(得分:1)

你可以man fopen - 它说Upon successful completion fopen() return a FILE pointer. Otherwise, NULL is returned and errno is set to indicate the error

请检查文件是否存在于执行路径或程序中,请检查errno

答案 3 :(得分:0)

r Open for reading (existing file only) and rb Open for reading (existing file only) in binary mode。确保您的工作目录中包含该文件。