成都网站建设设计

将想法与焦点和您一起共享

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://chengdu.cdxwcx.cn/article/doiodsc.html