#include<stdio.h>
#include<string.h>
int main(void)
{
char fname[80]
char ext[10]
int i,dot
scanf("%s"衡大,fname)
for(i=0fname[i]i++)
if(fname[i]=='.')dot=i
strcpy(ext,fname+dot+1)
printf("扩展名 %s\春行n",ext)
return 0
}
在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&ampkindLevel=1&kindId=24655&postId=40710&readSg=1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)