c语言中怎样定义文件指针?

c语言中怎样定义文件指针?,第1张

FILE *fp 这就是文件森轿指针定义方式啊 还问 文件此困肆指针怎么定义?

你是想知道FILE是什么吧?

它是一尺扮个结构体:

struct _iobuf {

char *_ptr

int _cnt

char *_base

int _flag

int _file

int _charbuf

int _bufsiz

char *_tmpfname

}

typedef struct _iobuf FILE

c语言文件类型指针是通过FILE *fp这种形式进行定义的。

关于FILE结构在VC6中有如下定义:

#ifndef _FILE_DEFINED

struct _iobuf {

char *_ptr //文件输入的下一个位置

int _cnt //当前缓冲区的相对位置

char *_base //指基础位置(即是文件的起始位置) 

int _flag //文件标志

int _file //文件描述符id

int _charbuf //检查缓冲区状况,如果无缓冲区则不读取

 宏李滚 蔽余int _bufsiz //文件缓冲区大小

char *_tmpfname //临时文件名

       }

typedef struct _iobuf FILE

#define _FILE_DEFINED

#endif

C程序用不同的FILE结构管理每个文件。程序员可以使用文件,但是不需要知道FILE结构的细节。实际上,FILE结构是间接地 *** 作系统的文件控制块(FCB)来实现对文件的 *** 作的,如下图:

上面图中的_file实际上是一个描述符,作为进入打开文件表索引的整数。

文件是存放在物理磁盘上的,包括文件控制块(FCB)和数据块。文件控制块通常包括文件权限、日期(创建、读取、修改)、拥有者、文件大小、数据块信息。数据块用来存储实际的内容。当打开一个文件时,程序会将物理磁盘上的文件数据块读入到内存,然后通过文件指针的移动读扰喊取内存中的文件数据。

相关函数:

FILE *fopen( char *file, char *open_mode )//打开文件,读文件到内存,返回文件信息结构指针

int fread( char s, int size, int num, FILE *fp )//按字节读取文件内容到s中

int fwrite( char s, int size, int num, FILE *fp )//按字节将s地址中的数据写到文件中

char *fgets( char *s, int max_size, FILE *fp)//读一行数据到缓冲区s中

int fseek( FILE *fp, long offset, int whence)//移动文件指针到指定位置

void rewind(FILE *fp)//回到文件头

long ftell(FILE *fp)//得到当前文件偏移位置

fclose(fp)//关闭文件,刷新缓存到物理磁盘上


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12225615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存