一般函数调用即函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分,不管是java还是python的I/O最后都是通过read和write这样的系统调用来完成的。系统调用是用户程序和内核交互的接口。
函数库调用 :在所有的ansi c编译器版本中,c库函数是相同的;它调用函数库中的一个程序;与用户程序相联系 important ;在用户地址空间执行 important ;它的运行时间属于用户时间 important ;属于过程调用,开销较小 important ;在C函数库libc中有大约300个程序。
系统调用:各个操作系统的系统调用时不同的 ;它调用系统内核的服务 ;是操作系统的一个入口点 ;在内核地址空间执行;它的运行时间属于系统时间 ;需要切换到内核上下文环境然后再切换回来开销大;在unix中有大约90个系统调用(MS-DOS)中少一些 。
函数库调用 通常提供比较复杂的功能 ,系统调用 通常提供一种最小界面 。