如何通过FILE指针获取文件名

在tc20中,一旦你成功打开一个文件,他将返回一个文件指针

        FILE *fp;

              fp=fopen("abc.dat",文件状态(如w,r,r+));

当上面的操作成功后文件指针fp就会赋予你打开文件的最基本信息!

FILE结构在Turbo C在stdio.h文件中有以下的文件类型声明: 

typedef struct 

     short level;                 /*缓冲区“满”或“空”的程度*/ 

     unsigned flags;              /*文件状态标志*/ 

     char fd;                    /*文件描述符(句柄)*/ 

     unsigned char hold;          /*如无缓冲区不读取字符*/ 

     short bsize;                 /*缓冲区的大小*/ 

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

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

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

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

}FILE; 

为管理你打开的文件,操作系统为所有的文件创建一个打开文件信息的结构数组---文件控制块(FCB),而文件描述符就承担了访问与之对应的文件控制块的使命,他在c中就充当文件句柄。每一个文件都需要唯一的一个标识,这样才能管理若干个文件

FCB他存贮这你所有打开文件的信息,而只有通过文件句柄才能访问与之对应的FCB,从而访问你的文件.

文件句柄,就是FCB结构数组的下标

所以,通过文件指针获得文件名的操作路线:

FILE *fp;

char  fd = fp->fd;

FCB *fcb;

char *filiname = fcb[fd].filiname

利用FCB(文件控制块)操作的例子见:

http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=8747&;kindLevel=1&kindId=24655&postId=40710&readSg=1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值