单选题 下列关于库函数和系统调用的描述中,正确的是______。
Ⅰ.库函数可以运行在用户空间
Ⅱ.有的库函数会使用系统调用
Ⅲ.系统调用的执行效率比库函数高
Ⅳ.当调用库函数时,必然会由用户态转为核心态
  • A.Ⅱ、Ⅲ、Ⅳ
  • B.Ⅰ、Ⅲ
  • C.Ⅰ、Ⅱ
  • D.Ⅰ、Ⅱ、Ⅲ
【正确答案】 C
【答案解析】库函数与系统调用都是将完成特定功能的代码封装好,提供给应用程序对应的接口,应用程序可以直接调用。但两者也有着比较明显的差别: 1)库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核提供给用户的程序接口,运行在内核空间中。 2)库函数的实现过程中,可以使用系统调用来完成自己的功能,但并不是所有的库函数都会用到系统调用,简单的库函数(如数字计算)并不会用到系统调用。 3)通常,库函数的执行效率不会比系统调用低。使用系统调用的库函数,执行效率和系统调用基本一致;而没有使用系统调用的库函数,执行效率通常比系统调用高,因为使用系统调用时,需要上下文的切换和状态的转换(从用户态转为核心态)。 由以上可以得出,库函数是可以运行在用户空间的,也可以使用系统调用,效率不会低于系统调用,而且调用库函数时不一定会引起状态转变。因此答案选择A选项。