系统调用与库函数的区别

系统调用(System call)是程序向系统内核请求服务的方式。可以包括硬件相关的服务(例如, 访问硬盘等),或者创建新进程,调度其他进程等。系统调用是程序和操作系统之间的重要接 口。

库函数:把一些常用的函数编写完放到一个文件里,编写应用程序时调用,这是由第三方提供 的,发生在用户地址空间。

在移植性方面,不同操作系统的系统调用一般是不同的,移植性差;而在所有的ANSI C编译器 版本中,C库函数是相同的。

在调用开销方面,系统调用需要在用户空间和内核环境间切换,开销较大;而库函数调用属于 “过程调用”,开销较小。