C语言中的文件概述

FILE *fp 

所有平台的名字都是FILE,FILE是一个结构体类型,里面的成员实现的功能一致,但

是不同平台成员的名字不一样。

typedef struct _IO_FILE FILE;

声明FILE结构体类型的信息包含在stdio.h头文件中

为了统一,便于移植,所有平台都用typedef定义成FILE

例如

typedef struct{

    short level; //缓冲区“满”或者空的程度 
    
    unsigned flags; //文件状态标志

    char    fd;    //文件描述符 文件描述符范围为 0 ~ 1024  其中0,1,2被占用了

    unsigned char hold;  // 如无缓冲区不读取字符
    
    short   bsize;  //缓冲区大小

    unsigned char  *buffer;  //数组缓冲区的位置

    unsigned ar;  //指针, 当前的指向

    unsigned   istemp;// 临时文件 ,指示器

    short   token; // 用于有效性的检查


}FILE;

有三个已经定义好的标准文件指针:

标准输入    stdin      从键盘输入
标准输出    stdout     打印在屏幕
标准出错    stderr     打印在屏幕

自己定义的文件指针不能与这些已经定义好的标准文件指针重名

需要注意以下几点:

1.fp指针,只要调用了fopen(),就会在堆区分配空间,把地址返回给fp

2.fp指针实际上并不是直接指向文件,fp指针和文件关联,fp内部成员保存了文件的相关信息,真正相关的是里面的成员变量文件描述符

3.操作fp指针,不能直接操作,必须通过文件库函数来操作fp指针

4.通过库函数操作fp指针,对文件的任何操作,fp里面的成员会有相应的变化(系统自动完成),不需要人来完成很多非常复杂的操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值