笔试题:简答:系统调用与库函数的区别

系统调用:运行在用户空间应用程序操作系统内核请求某些服务的调用过程。
系统调用提供了用户程序与操作系统之间的接口。

函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。

库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。

1.系统调用是为了方便应用使用操作系统的接口,而库函数是为了方便人们编写应用程序而引出的,比如你自己编写一个函数其实也可以说就是一个库函数
2.系统调用可以理解为内核提供给我们在用户态用的接口函数,可以认为是某种内核的库函数。
3.read就是系统调用,而fread就是C标准库函数.

区别:

函数库调用

系统调用

平台移植性好

依赖于内核,不保证移植性

调用函数库中的一段程序(或函数)

调用系统内核的服务

一个普通功能函数的调用

是操作系统的一个入口点

用户空间执行

内核空间执行

它的运行时间属于用户时间

它的运行时间属于系统时间

属于过程调用,调用开销较小

在用户空间和内核上下文环境间切换,开销较大

库函数数量较多

UNIX中大约有90个系统调用,较少

典型的C函数库调用:printf scanf malloc 

典型的系统调用:fork open write



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值