文件操作接口三(库函数):fopen,fwrite,fread,fclose

文件操作接口三(库函数):fopen,fwrite,fread,fclose

0.什么是库函数

在这里插入图片描述
1 库函数
将内核暴露出来的接口封装好的函数的方法为库函数
2.库函数:在用户态调用,在用户态执行

C语言库函数对文件操作接口:fopen,fclose,fread,fwrite
他们属于C库函数,在lib层中。返回值为FILE* 文件指针。

1. fopen

  1. 原型 FILE * fopen(const char *path,cost char *mode)

  2. 功能:打开一个文件,返回指向该文件的指针

  3. 参数:第一个参数为欲打开文件的文件路径及文件名,
    第二个参数表示对文件的打开方式

  4. 返回值:如果出错,fopen将返回一个空指针值NULL
    成功,返回文件指针

  5. 打开方式:
    文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

    r(read): 只读
    w(write): 只写
    a(append): 追加
    t(text): 文本文件,可省略不写,默认文本文件
    b(binary): 二进制文件
    +: 读和写

    如: 1.“r+” = “rt+”
    打开一个文本文件,文件必须存在,允许读写

  6. 例:
    FILE *fr =fopen(“c:\1.test”,“r”);
    其意义是打开C驱动器磁盘的根目录下的文件1.test,c:\\1.test中的两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。

2. fwrite

  1. 原型: size_t fwrite(const void * buf, size_t size, size_t count, FILE *fp)
  2. 功能: 把 buf 所指向的数组中的数据写入到给定流 fp中
  3. 参数:
    buf :指向数据块的指针
    size:参数 size 是指单个元素的大小,其单位是字节而不是位
    count :指出要读或写的元素个数,这些元素在 buf 所指的内存空间中连续存放
    fp: fopen 打开的文件指针,目标文件
  4. 返回值:
    返回值随着调用格式的不同而不同:
    (1) 调用格式: fwrite(buf,sizeof(buf),1,fp);成功写入返回值为1(即count)
    (2)调用格式: fwrite(buf,1,sizeof(buf),fp);成功写入则返回实际写入的数据个数(单位为Byte)
    一般使用第二种方法。

3. fread

  1. 原型: size_t fread(void *buf, size_t size, size_t count, FILE *fp)
  2. 功能: 从给定流 fp读取数据到 buf 所指向的数组中
  3. 参数:同上
  4. 返回值:读取的元素的个数
  5. 操作:
    int iCount = fread(buf, 1, sizeof(buf), fp);

4. fclose

  1. 原型: int fclose( FILE *fp );
  2. 功能: 关闭一个文件流
  3. 实现:
    使用fclose()函数就可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区
  4. 返回值: 成功关闭,fclose 返回 0,否则返回EOF(-1),errno被设置

参考:

[1]: https://blog.csdn.net/ffsiwei/article/details/80990210
[2]: https://blog.csdn.net/qq_40657299/article/details/78355408

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值