系统调用和库函数调用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,借鉴https://blog.csdn.net/lf_2016/article/details/54587020系统调用:用户直接调用操作系统暴露出来的接口,这种方式成为系统调用。文件I/O操作就是系
千家信息网最后更新 2026年11月02日系统调用和库函数调用
借鉴https://blog.csdn.net/lf_2016/article/details/54587020
系统调用:用户直接调用操作系统暴露出来的接口,这种方式成为系统调用。
文件I/O操作就是系统调用, man手册,man 2 就是查询系统调用API,
常用的API有open close read write lseek fcntl
库函数调用:对操作系统暴露出来的接口进行封装形成了库函数,提供给用户调用。
标准文件I/O操作就是库函数调用,man手册,man 3 就是查询库函数接口。
常见的标准库函数fopen fread fwrite
实际上库函数是对系统调用的一层封装,因此库函数对文件操作的时候,必然会引起系统调用。也就是说,库函数调用实际上是通过系统调用实现的。例如:C库函数fwrite就是通过write实现的。
库函数调用可以大大减少系统调用的次数,这是因为缓冲区技术。在用户空间和内核空间,对文件都使用了缓冲区,当内核缓冲区写满之后或写结束之后才将内核缓冲区内容写到文件对应的硬件媒介中。
#include#include #include int open(const char *pathname,int flags,int perms);flags:O_RDONLY O_WRONLY O_RDWR O_CREAT 若文件不存在,则创建一个新的文件,并用第三个参数为其设置权限。 O_TRUNC 若文件已经存在,那么会删除文件中的全部原有数据,并且设置文件大小为0 O_APPEND 以添加方式打开文件返回值:成功返回文件描述 失败返回-1int fd;fd = open("test.txt",O_RDWR|O_CREAT|O_TRUNC);if(fd < 0){ perror("fail to open");}
#includeint close(int fd);返回值:成功返回0 失败返回-1
#includessize_t write(int fd,const void *buf,size_t count);功能:像文件描述符fd所指向的文件中写入,从buf开始的缓冲区中count个字节返回值:成功时返回写入的字节数(若为零则表示没有写入数据) 失败时返回-1,并设置errno为相应值。
#includessize_t read(int fd,void *buf,size_t count);功能:从文件描述符fd中读取count字节的数据并放入buf开始的缓冲区中。返回值:成功时返回读取到的字节数 失败时返回-1,并设置errno为相应值。
#include#include off_t lseek(int fd, off_t offset, int whence);/***offset:相对与基准点whence的偏移量,以字节为单位,正数表示向前移动,复数表示向后移动*whence:SEEK_SET 文件的起始位置 SEEK_CUR 文件当前读写位置 SEEK_END 文件的结束位置**/返回值:成功时,定位到文件当前读写位置 失败时,返回-1,并设置errno为相应值
#define OFFSET 10240int read_len;lseek(fd,-OFFSET,SET_END);while((read_len = read(fd,buf,sizeof(buf))) > 0) //读多少,写多少{ write(fdd,buf,read_len);}
文件
函数
系统
缓冲区
缓冲
成功
字节
就是
位置
内核
接口
数据
用户
操作系统
功能
实际
实际上
手册
方式
标准
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
华服互联网科技怎么样
科技互联网技术
奇士达互联网科技
互联网科技缩写
互联网科技网站
互联网金融科技委员会
成都仁贤领冠互联网科技有限公司
广西拼得多互联网科技有限公司
科技赋能互联网健康
重庆威客帮互联网科技
速维有品互联网信息科技(苏州)有限公司
坤平互联网科技
高科技互联网发展前景如何
山东星卡互联网科技有限公司官网
互联网高科技行业有哪些企业
万物互联网智能科技
互联网界的黑科技
互联网公司属于科技吗
六子台科技互联网展会
互联网科技工作委员会
互联网属科技
齐家互联网科技有限公司
卓越科技互联网 招聘
哈尔滨屹滨互联网科技有限公司
华夏恒生科技与互联网科技
爱医互联网络科技
高科技互联网套路
宇信科技在杭州互联网排第几
米泉互联网科技专业怎么样