日期:2014-05-16  浏览次数:21035 次

fopen函数返回NULL,打印errno值为0,perror打印结果为Error 0,fopen失败原因是什么啊
使用fopen(file,"a+");去创建一个文件,fopen无法正常执行,查看errno的值,并调用perror打印信息,结果errno值为0,打印的信息为Error 0,很奇怪,感觉errno没有被改写,但fopen确实执行失败了,返回值是NULL,各位大神,这是咋回事,小弟求解答
C语言 UNIX fopen

------解决方案--------------------
求代码,求真相
------解决方案--------------------
看看路径,实在不行就换一个函数试一下,用open()这个函数比较好
------解决方案--------------------
路径正确吗?
------解决方案--------------------

FILE *fopen(const char *path, const char *mode);
//路径对么?你怎么定义你的file变量的呢?

------解决方案--------------------
试试看显式的制造一个错误,看看errno是否会被置为非0.

http://stackoverflow.com/questions/16507816/what-kind-of-errors-set-errno-to-non-zero-why-does-fopen-set-errno-while

------解决方案--------------------
引用:
求代码,求真相


++
------解决方案--------------------
程序是不是root身份执行的?可能是操作权限的问题,可以尝试先以只读打开文件看是否成功