linux下C编程之文件流操作的错误处理的问题

2019-03-26 12:34发布

我学习linux编程,程序如下:
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int main(){
    FILE *fp=fopen("lhz.h","r");
    fp=NULL;
    if(fp!=NULL){
        while(!feof(fp))
            putchar(fgetc(fp));
    }
    else
    {
        printf("error code: %d",ferror(fp));
        perror("open file error");
    }
    fclose(fp);
    return 0;
}

我强制fp=NULL;
可是程序也进不到打印错误代码的语句。
请问高手,怎么回事啊?谢谢!

此帖出自Linux与安卓论坛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
EETUX
1楼-- · 2019-03-26 15:28
 精彩回答 2  元偷偷看……
EETUX
2楼-- · 2019-03-26 18:06
ferror是这么用的?
chenbingjy
3楼-- · 2019-03-26 18:48
还是不行。
else
        {
                printf("error code: %d ",ferror(fp));
                perror("open file error");
        }
chenbingjy
4楼-- · 2019-03-26 21:23
 精彩回答 2  元偷偷看……
EETUX
5楼-- · 2019-03-27 02:56
这样:
printf("error code: %d ",1234567);
//fclose(fp);
chenbingjy
6楼-- · 2019-03-27 03:47
本帖最后由 chenbingjy 于 2015-11-30 15:18 编辑

非常感谢!这样是可以的,可是不知道为什么?难道那种用法有错吗?

一周热门 更多>