【正确答案】
A、B
【答案解析】 对于选项A,fopen是打开文件的函数,文件也可以看成是一个设备,打开一个设备将导致给设备所属的驱动程序发送一个IRP(I/O Request Packet,输入/输出请求包),而与真实硬件相关的驱动程序都运行于内核。所以,选项A正确。
对于选项B,exit函数是结束进程的函数,结束进程需要访问PCB(Process Control Block,进程控制块)和TCB(Thread Control Block,线程控制块)等一些数据结构,而这些数据都存在于内核中。所以,选项B正确。
对于选项C,memcpy是C/C++语言中的内存复制函数,功能是从源src所指的内存地址的起始位置开始复制n个字节到目标dest所指的内存地址的起始位置中。它不必进入内核就可以完成。所以,选项C错误。
对于选项D,strlen函数的功能是求字符串的实际长度,即从内存的某个位置(可以是字符串开头、中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到遇到第一个字符串结束符“\0”为止,然后返回计数器值(长度不包含“\0”)。它不必进入内核就可以完成。所以,选项D错误。
所以,本题的答案为AB。