cJSON详细剖析(八)----dofile()函数

10 篇文章 0 订阅

本想着明天若有时间的话,明天写的,但是,看了看代码,发现很简单。。。所以我就干脆提上日程,今晚把这个给分析了。

如上图,我把代码按分号分行也才十来行。一看就很简单嘛。一些简单的注释我写在了后面。我一个一个解释下,权当给自己再学习学习。

  • fopen(文件名,使用文件方式)  

打开一个文件,返回一个FILE文件指针,第一个参数是文件的地址,可以是绝对地址或者相对地址。第二个参数是打开的方式。如下图,举几个例子:

FILE *f1 = fopen("C:\\Users\\Doucment\\test1.txt", "rb");      //这是绝对地址

FILE *f1 = fopen("./test1.txt", "rb");      //这是相对地址,注意的是 ./ 指的是程序所在的目录

  • fseek(FILE *stream, long offset, int fromwhere)

此函数的功能是重定位的文件位置指针,第一个参数stream为文件指针 ,第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移,第三个参数fromwhere设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET。SEEK_SET指的文件开头,SEEK_CUR指的 当前位置,SEEK_END指的文件结尾。

  • long ftell(file)

得到文件位置指针当前位置相对于文件首的偏移字节数,一个参数看起来还是很舒服的。。哈哈

  • int fread ( void *buffer, size_t size, size_t count, FILE *stream) 

buffer 用于接收数据的内存地址,size 要读的每个数据项的字节数,单位是字节,count 要读count个数据项,每个数据项size个字节stream 输入流。所以总的数据大小应该是size X count 字节。若正确返回时真实读取的项数,大于count则是错误的。

最会注意一定要记得关文件流,也就是图中框出的部分,因为在标准c里面存在缓冲区一说,如下图,不加fclose(fp)以及不关闭程序的话,不会将所写的内容写入文件,当然如果缓冲区满了的话会自动刷新,也就是会不加fclose(fp)也写进缓冲区。

哈哈,接下来不就是很熟悉的doit()函数嘛,哈哈,这个就无需解释了吧。恩恩,所以说这个简单嘛,写完啦!告辞,溜了溜了。btw,我总觉得doit()函数没有分析权,哎呀,后面有时间再看看哪些是没分析到的。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值