库函数调用和系统调用的区别

来源:互联网 发布:ubuntu 鼠标不起作用 编辑:程序博客网 时间:2024/04/29 18:12
函数库调用 VS 系统调用

 

函数库调用

系统调用

在所有的ANSI C编译器版本中,C库函数是相同的

各个操作系统的系统调用是不同的

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

它调用系统内核的服务

与用户程序相联系

是操作系统的一个入口点

在用户地址空间执行

在内核地址空间执行

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

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

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

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

C函数库libc中有大约300个函数

UNIX中大约有90个系统调用

典型的C函数库调用:system fprintf malloc

典型的系统调用:chdir fork write brk

库函数调用通常比行内展开的代码慢,因为它需要付出函数调用的开销。但系统调用比库函数调用还要慢很多,因为它需要把上下文环境切换到内核模式。



refer:http://blog.csdn.net/clearriver/article/details/4152780
0 0
原创粉丝点击