1. 文件编程函数介绍
如果在Linux系统下学习C语言,就会了解到两套文件编程接口函数:
C语言标准的文件编程函数: fopen*、fread、fwrite、*fclose
Linux下提供的文件编程函数: open*、read、write、*close
传参的区别:
基于文件指针: fopen fclose fread fwrite 比较适合操作普通文件。
基于文件描述符: open close read write 比较适合操作设备文件。
2. C语言标准库提供的文件编程函数下面介绍C语言标准库提供的文件编程函数,一般对文件常用的操作就是:创建(打开)、读、写、关闭。
其他的函数用法同理,只要把这4个函数学会了,基本的文件操作已经可以完成了。
#include
FILE *fopen(const char *path, const char *mode);
函数功能: 打开或者创建文件
函数参数:
const char *path 填文件的路径
const char *mode 填权限。比如: wb rb a+b
函数返回值: 文件打开或者创建成功返回对应的文件指针.
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
函数功能: 读文件
函数参数:
void *ptr :读取数据存放的缓冲区。
size_t size :每次读取的大小
size_t nmemb :每次读取的次数
FILE *stream :读取文件
返回值: 读取成功的次数。
比如: fread(buff,1,1000,fp); 从fp文件里读取1000个字节的数据到buff里。
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
函数功能: 写文件
函数参数:
void *ptr :将要写入的数据缓冲区首地址。
size_t size :每次写入的大小
size_t nmemb :每次写入的次数
FILE *stream :写入的文件
返回值: 写入成功的次数。
比如: fwrite(buff,1,1000,fp); 向fp文件里写1000个字节的数据,数据从buff里获取。
int fclose(FILE *fp);
函数功能: 关闭打开的文件。
3. Linux下的系统函数: 文件编程函数
Linux下也有一套系统函数,用于文件操作,这些函数在Linux下常用于读写设备文件;当然,读写普通文件也是一样,普通文件也是磁盘上的数据,也是操作块设备驱动。
#include
#include
#include
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
函数功能: 打开或者创建文件
函数参数:
const char *pathname : 文件的路径
int flags :打开文件的权限.
比如: O_RDONLY O_WRONLY O_RDWR O_CREAT
mode_t mode :创建文件时指定文件本身的权限.
比如:
S_IRWXU 00700 user (file owner) has read, write and execute permission
S_IRUSR 00400 user has read permission
S_IWUSR 00200 user has write permission
S_IXUSR 00100 user has execute permission
S_IRWXG 00070 group has read, write and execute permission
S_IRGRP 00040 group has read permission
S_IWGRP 00020 group has write permission
S_IXGRP 00010 group has execute permission
S_IRWXO 00007 others have read, write and execute permission
S_IROTH 00004 others have read permission
S_IWOTH 00002 others have write permission
S_IXOTH 00001 others have execute permission
返回值: (返回文件描述符--小整数)文件打开成功值>=0 否则
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?