下面哪些函数调用必须进入内核才能完成?
A.fopen
B.exit
C.memcpy
D.strlen
解析:fopen是打开文件的函数,文件也可以看成是一个设备,打开一个设备将导致给设备所属的驱动程序发送一个IRP(输入输出请求包),而真实硬件相关的驱动程序都运行于内核。exit函数是结束进程的函数,结束进程需要访问TCB和PCB等等这些数据结构,而这些数据结构都存在于内核中。memcpy和strlen是c标准库的函数,可以直接供用户调用。不需要进入内核。
注意:此处可见return和exit的区别,return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
补充:
一、用户空间:(1)C标准库:是适用于所有c语言编写的程序,没有平台差异性
在用户空间程序员可以直接调用的
用c语言和汇编语言实现的
(2)系统API(以库的形式提供):具有平台差异性,比如windows API就不能在linux平台上使用它是操作系统提供给用户的接口,可以让用户直接使用操作系统的某个服务。一个API可能调用