文件操作(库函数、系统调用、有缓存,无缓存)

本文探讨了库函数与系统调用的区别,包括库函数作为用户空间的高层接口,而系统调用是内核服务。强调库函数通常带有缓存,而系统调用则无缓存。详细介绍了不带缓存的I/O操作以及带缓存的文件操作原理。此外,解释了用户空间如何通过系统调用和硬件中断访问内核空间,并阐述了文件描述符在操作文件中的作用,以及划分用户空间和内核空间的保护目的。
摘要由CSDN通过智能技术生成

库函数与系统调用的区别

1.库函数是高层的,完全运行在用户空间,为程序员提供调用真正在幕后完成实际事物的系统调用的更方便的接口。系统调用是底层的,在内核空间运行并且由内核自己提供。

2.库函数调用,调用函数库中的一段程序,系统调用调用系统内核的服务

3.在所用的ANSI C编译器版本中,C库函数是相同的,各个操作系统的系统调用是不同的

4.库函数调用面向的是库函数开发,系统调用面向的是硬件

5.库函数调用带缓存,系统调用不带缓存


不带缓存的I/O口操作

不带缓冲指的是每一个函数都只调用系统中的一个函数,所有的磁盘I/O都要经过内核的块缓冲,用户的进程不会对函数自动缓冲,每次读写都要进型系统调用

带缓存的文件操作是标准C库函数实现,第一次调用带缓存的文件操作时标准库会自动分配内存并且读出一段固定大小的内容存储在缓存中,

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值