【Linux】文件操作函数 fopen、fwrite、fread、fclose、fseek 与 open、write、read、close、lseek

本文详细介绍了Linux中文件操作的函数,包括fopen、fwrite、fread、fclose、fseek以及对应的系统调用open、write、read、close、lseek的使用方法和区别,强调了文件流指针管理和文件描述符的重要性。

文件操作函数及fopen和open的区别

一、文件操作

1.1 打开文件 fopen

#include <stdio.h>
FILE* fopen( const char *filename, const char *mode );

  返回值: 返回一个 FILE* 的文件流指针。
  filename: 需要打开的文件,需要加上文件的路径,可以是相对路径,也可是绝对路径。
  mode: 以何种方式打开文件。

r 读模式打开文件,如果文件不存在则报错
r+ 读写模式打开文件,如果文件不存在则报错
w 写模式打开文件。如果文件不存在则创建文件;
如果文件存在则清空文件类容(截断文件),文件流指针指向文件的头部
w+ 读写模式打开文件。如果文件不存在则创建文件;
如何文件存在则清空文件类容(截断文件),文件流指针指向文件的头部
a 追加模式打开文件。如果文件不存在则创建文件;
如果文件存在,不能读文件,只能在文件末尾追加写文件
a+ 追加模式打开文件。如果文件不存在则创建文件;
如果文件存在,支持读文件,且在文件末尾追加写文件

1.2 关闭文件 fclose

#include <stdio.h>
int fclose( FILE *stream );

1.3 写文件 fwrite

#include <stdio.h>
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

  返回值: 返回成功写入块的个数。
  buffer: 要往 stream 文件流指针所指的文件中写入的内容。
  size: 块的大小,单位字节(衡量一次可以写入几个字节)。
  count: 块的个数,size * count (衡量总共写入了多少个字节)。
  stream: 文件流指针,往哪里写。

  通常:将 size = 1,每写一块就等于写入 1 个字节,这样要往文件中写入多少字节,就将块的大小 count 设置为多少。


1.4 读文件 fread

#include <stdio.h>
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

  返回值: 返回成功读到的块的个数。(实际)
  buffer: 将读到的内容保存在 buffer 中。
  size: 块的大小,单位字节(衡量一次可以读到几个字节)。
  count: 块的个数,size * count (衡量总共读到的多少个字节)。(期望)
  stream: 文件流指针,从哪里读取文件。

  通常:将 size = 1,每读一块就等于读到 1 个字节,这样要从文件中读多少字节,就将块的大小 count 设置为多少。


1.5 将文件流指针移动到指定位置 f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值