系统调用与库函数的区别和联系(API)

本文探讨了系统调用与库函数的区别,系统调用是操作系统为用户进程与硬件交互提供的接口,而库函数是封装后的函数,提供了更便捷和可移植的服务。库函数如printf通过系统调用实现,如write,但能减少系统调用次数以提高效率。回调函数是一种将用户自定义函数传递给系统,由系统在适当时候执行的技术,类似于中断处理机制。
摘要由CSDN通过智能技术生成

在写程序的过程中,像MFC,VC++这些编程,都会涉及到函数的调用,有库函数也有系统函数,下面看一看它们的区别!!

系统调用(system call)和库函数调用(Library function call)的区别?

理解库函数的区别和系统调用,首先是kernel mode和user mode这两个模式是这两种函数工作时的空间不同。

一、系统调用:

系统调用实际上是指底层的一个调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的。是操作系统为用户态运行的进程和硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口,即就是设置在应用程序和硬件设备之间的一个接口层。可以说是操作系统留给用户程序的一个接口。

例如linux内核是单内核,结构紧凑,执行速度快,各个模块之间是直接调用的关系。放眼整个linux系统,从上到下依次是:用户进程->系统调用接口->linux内核子系统->硬件。linux内核包括了系统调用接口和内核子系统两部分。或者从下到上:物理硬件->OS内核->OS服务->应用程序。这里的OS起到了“承上启下”的关键作用,向下管理物理硬件,向上为操作系统服务和应用程序提供接口,这里的接口就是系统调用了。操作系统提供的少部分系统调用都是由C和汇编混合编写实现的,其接口用C来定义,具体实现则是汇编,这样的好处是执行效率高,而且极大的方便了上层的调用。

在linux程序设计就是底层调用的意思࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值