what is the reason for fopen's failure to open a file

北战南征 提交于 2020-08-18 17:53:04

问题


I have the following code where I am trying to open a text file.

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

I am using vc 2010 and the file is in the debug directory of this project. Can anyone tell me why it is not able to open the file?


回答1:


#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);


}

this way if fopen gets fail then it will set error number you can find those error number list at here http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html




回答2:


Look at the errno variable which is set in the event of an error. It's a global variable. It's been a while, but probably include errno.h which will give you the definition.




回答3:


You can do man fopen - it says Upon successful completion fopen() return a FILE pointer. Otherwise, NULL is returned and errno is set to indicate the error.

Please check whether the file exists in the execution path or in your program, check the errno




回答4:


r Open for reading (existing file only) and rb Open for reading (existing file only) in binary mode. Make sure you have the file in your working directory.



来源:https://stackoverflow.com/questions/8633909/what-is-the-reason-for-fopens-failure-to-open-a-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!