04-库函数方式文件编程

上篇讲解了通过系统调用实现文件编程,本篇通过c函数库实现文件编程。

一、库函数方式文件编程的优点:

        基于C函数库的文件编程是独立于具体的操作系统的,不管是在windows,linux,还是其他的操作系统中,都是使用这些函数。使用库函数进行程序设计可以提高程序的可移植性。

二、两个重要的概念:

        :对于标准的C函数库,他们的操作都是围绕流来进行的。流是一个抽象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。



         文件指针:在系统调用方式实现的文件访问中,使用文件描述符(一个非负整数)来指向一个文件。在库函数方式的文件访问中,使用FILE类型来表示一个打开的文件,这个类型中包含了管理文件流的信息。而指向该类型的指针FILE * 则被称之为文件指针。

二、函数编程的函数说明

  1. 打开文件:fopen
    函数原形FILE *fopen(const char *path, const char *mode)
    函数功能打开文件
    头文件#include《stdio.h》
    返回值成功:返回文件指针; 失败:NULL
    参数说明
    path文件路径
    mode打开文件的模式,r,r+,w,w+,a
  2. 关闭文件:fclose
    函数原型int fclose(FILE *fp);
    函数功能关闭一个打开的文件
    头文件#include《stdio.h》
    返回值成功:0; 失败:EOF
    参数说明
    fp:待关闭的文件指针;
  3. 读文件:fread
    函数原型size_t fread(void *ptr, size_t size, size_t nmemb, FILE *steam);
    函数功能从文件中读取数据;
    头文件#include《stdio.h》
    返回值成功:返回成功读取到的数据量 ; 失败:0
    参数说明
    ptr:要保存的数据位置;
    size:每块数据的大小;
    nmemb:读取的数据块数;
    steam:希望读取的文件的文件指针;
  4. 写文件:fwrite
    函数原型size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
    函数功能往一个打开的文件写入数据;
    头文件#include《stdio.h》
    返回值成功:返回成功写入的数据量 ; 失败:0
    参数说明
    ptr:存放想要写入文件的数据;
    size:每块数据的大小;
    nmemb:读取的数据块数;
    steam:希望写入的文件的文件指针;
  5. 文件定位:fseek
    函数原型int fseek(FILE *stream, long offset, int whence);
    函数功能设置文件的位置指针;
    头文件#include《stdio.h》
    返回值成功:0 ; 失败:-1;
    参数说明
    stream:要重新定位的文件指针;
    offset:相对于第三个参数的偏移量;
    whence:文件指针相对于文件的位置。

三、文件编程例子:

  • 功能从一个文件的内容中任意位置,插入自己想要的内容
    代码
#include <stdio.h>

int main( int argc , char **argv ){

        FILE *file_f = fopen( "/home/nan/test/tea.txt" , "r+" ) ;
        FILE *file_t = fopen( argv[2] , "a+" ) ;
        char buf[100] ;
        int size = 0 ;
        int nmember = 0 ;
        if( !file_f ){
                printf("from open fail\n") ;
               return -1 ;
        }
        if( !file_t ) {
            printf("write open fail!\n") ;
            return -1 ;
        }
        while( nmember=fread(buf,sizeof(char),100,file_f) ) {
            nmember = fwrite( buf , sizeof(char), nmember , file_t ) ;
            if( !nmember ) {
                printf("write fail!\n") ;
                return -1 ;
            }
        }       
        return 0 ;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
探索者STM32F4开发指南-库函数版是一本针对STM32F4系列微控制器的开发指南,它提供了丰富的内容和实例,以帮助初学者深入了解和掌握STM32F4的开发和应用。该指南基于库函数的开发方法,以简明易懂的方式介绍了STM32F4的各种功能和特性,并通过实例演示了如何使用库函数编程开发。 该指南的下载方式一般有几种。首先,可以在官方网站或STM32F4相关的开发社区论坛上搜索并下载。这种方式可以确保下载到官方提供的最新版本,同时还可以访问到丰富的技术文档和资料。其次,一些电子书籍网站或资源分享网站上也可能提供该指南的下载。不过,在选择这种方式时,请注意确保来源可信,并且下载内容的完整性和准确性。 另外,如果您有购买某款开发板或器件的计划,有些厂商会提供一份开发指南或使用手册作为附带资料,并提供下载。这种方式可以确保下载到与您拥有的器件完全匹配的开发指南。 无论选择何种方式进行下载,我们建议事先对下载来源进行验证,并参考其他用户的评价和评级。同时,确保下载到的指南版本与您所使用的开发工具和器件相匹配,并留意相关的更新和补丁文件。 总之,探索者STM32F4开发指南-库函数版是一本实用的开发指南,可以帮助开发者快速上手和深入学习STM32F4的开发和应用。希望以上信息能够对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值