C语言 文件的指针是什么类型

 我来答
卿涉皇心
2019-01-16 · TA获得超过4041个赞
知道大有可为答主
回答量:3167
采纳率:25%
帮助的人:182万
展开全部
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
#endifc程序用不同的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);
//关闭文件,刷新缓存到物理磁盘上
涌博裕r4
2020-03-25 · TA获得超过3904个赞
知道大有可为答主
回答量:3176
采纳率:28%
帮助的人:183万
展开全部
FILE
*fp
=
fopen(.....)
这个好像是C++的语法,C语言好像不可以这么用
在前面加上
#include
#include
试试
如果用的是VC6的话,在前面加个下划线
下面的参考资料里面有个例子
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式