c语言file指针函数 c语言函数指针typedef
C语言文件位置指针的操作函数问题
函数原型
站在用户的角度思考问题,与客户深入沟通,找到昌江黎族网站设计与昌江黎族网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、虚拟空间、企业邮箱。业务覆盖昌江黎族地区。
int fseek( FILE *stream, long offset, int origin );
stream为要操作的文件指针,offset为移动的范围,origin为起始位置
origin:SEEK_CUR为从文件的当前位置移动
SEED_END为从文件的末尾向前移动
SEEK_SET为从文件的开始向后移动
简单吧:)
C语言中文件指针能不能作为参数传递?
1.指针完全可以作为函数的参数进行传递,其实在C中,数组作为参数传递,跟指针作为参数传递都很类似的,指针传的是该指针指向的地址,而数组参数则是将该数组的首地址传递过去。
2.文件指针
在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。定义说明文件指针的一般形式为:
FILE *指针变量标识符;
其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。在编写源程序时不必关心FILE结构的细节。在使用文件时,需要在内存中为其分配空间,用来存放文件的基本信息,给结构体类型是由系统定义的,C语言规定该类型为FILE型,其声明如下:
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned ar *curp;
unsigned istemp;
short token;
}FILE;
3.例如:
FILE *fp;
表示fp是指向FILE结构的指针变量,通过fp即可找存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件,实施对文件的操作。习惯上也把fp称为文件指针。
c语言文件类型指针
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); //关闭文件,刷新缓存到物理磁盘上
本文题目:c语言file指针函数 c语言函数指针typedef
转载源于:http://scyanting.com/article/doiodsc.html