文件的创建

目录

一、文件名

二、文件的打开与关闭

 三、文件顺序的读写

四、文件的随机读写


一、文件名

文件名包含三部分,文件路径+文件名主干+文件后缀

二、文件的打开与关闭

缓冲文件系统中,关键的的概念是文件类型指针,简称文件指针;

FILE* pf 文件指针变量

定义 pf是一个指向file类型的重镇变量,可以使pf指向某个文件的信息区(是一个结构体变量),通过该文件信息区的信息就能访问该文件。也就是说,通过指针变量能够找到与它相关联的文件。

文件在读写前应该打开文件,结束后应该关闭文件,在编写程序的时候,打开文件之后会返回一个FILE*指针变量来指向该文件,相当于建立了指针与文件的关系。

ANSIC规定用fopen打开文件,fclose关闭文件。

1.打开文件———fopen

由上图可知:

filename为

C字符串,包含要打开的文件的名称。

其值应遵循运行环境的文件名规范,并可以包括路径(如果系统支持)。

mode包含文件访问模式的C字符串,包括:

代码示例如下:

 

 2.关闭文件———fclose

返回值:

如果流成功关闭,则返回零值。

失败时,返回EOF。

 三、文件顺序的读写

首先我们要搞清楚输入流和输出流的概念,两个都是以内存为基准,输入流是从外设(键盘、扫描仪等)中读取数据,而输出流就是把内存中数据输出到外设或者其他地方,简单来说,输入流就是读数据,输出流就是写数据,

头文件都为stdio.h。

a.fgetc

变量:

pf指向标识输出流的FILE对象的指针

功能:

从流中获取字符,如果读取失败或者读取到文件末尾则会返回EOF.

返回值:

如果读取成功,返回读取的字符,提升为int,

如果位置指示器位于文件末尾,则会返回EOF并设置流的EOF指示器

如果读取失败,函数会返回EOF,并且设置其错误指示器.

代码如下:

b.fputc

变量:

character表示要输入的字符。 

功能:

将字符写入流内部的位置指示器的位置并推进位置指示器。

返回值:

成功后,返回所写字符。

如果发生写入错误,将返回EOF并设置错误指示器

代码如下:

 C.fpus

变量:

 str包含要写入流的内容的C字符串。

功能:

将str指向的字符串复制到指定流中,直到遇到'\0'结束,并且'\0'不会复制到指定流中。

代码如下:

d.fgets

变量:

str为指向复制字符串读取的字符数组的指针

num为复制到str中的最大字符数 

功能:

从流中获取字符串

从流中读取字符,并将其作为C字符串存储到str中,直到读取(num-1)个字符,或者到达换行符或文件结尾,以先发生的为准。

换行字符使fgets停止读取,但函数将其视为有效字符,并包含在复制到str的字符串中。

在复制到str的字符之后,会自动附加一个终止空字符。

代码如下:

e.fread

 变量:

ptr:指向大小至少为(size*count)字节的内存块的指针,已转换为void*。

size:每个元素的大小,单位为字节。

count:元素的数量

功能:

从流读取数据块

从流中读取count元素数组,每个元素的大小为size字节,并将它们存储在ptr指定的内存块中。

返回值:

返回成功读取的元素总数。

f.fwrite

功能:

将数据块写入流;

size:要写入的每个元素的字节大小。

num:元素的数量

代码如下:

 

h.fscanf

返回值:

成功时,函数返回参数列表中成功填充的项目数。由于匹配失败、读取错误或到达文件结尾,此计数可以与预期的项数匹配,也可以小于(甚至为零)。 

i.fscanf 

功能:将格式化数据写入流

对比一组函数

四、文件的随机读写

1.fseek:根据文件的位置和偏移量来定位文件指针

 2.ftell

返回文件指针相当于起始位置的偏移量,

3.rewind

让文件回到起始位置

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在NTFS文件系统中,每一个文件或目录都拥有一个MFT记录,MFT记录中记录了文件或目录的基本信息,对于普通文件来说,一般拥有文件序号,文件名,创建时间,文件大小,文件属性,文件数据地址索引等基本文件信息,而一个目录除了拥有基本文件信息,还拥有其目录下的文件索引项信息,文件与其父目录之间通过该文件的MFT记录中的父目录信息和目录中的索引项来建立隶属关系,这两种信息唯一地确定了文件与父目录之间的对应关系,由此可知,要在一个指定目录下生成一个文件,除了要创建目标文件本身的MFT记录,还需在其父目录的MFT记录或者其索引分配中建立目标文件的索引。在NTFS系统中,文件索引是一个比较复杂的内容,文件的索引采用了树型结构,这给NTFS系统带来了查找文件速度快的优点,但却给当索引结点增加或减少时,如何维护树的平衡带来了难题。在NTFS系统中,小目录的索引直接存放在目录本身MFT记录的90H属性中,而大目录的索引则需另外开辟新的索引分配区来存放相关的索引。原程序中只考虑了小目录的情况,即将文件的索引直接存放在90H属性中,并不考虑大目录的索引情况。除此之外,NTFS系统对于每一个文件操作都会写入日志文件中,以便一致性检查,但由于这方面的内容尚未研究清楚,本程序中也未涉及这方面的内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值