C printf是在内核模式下运行还是在用户模式下运行?

C printf是在内核模式下运行还是在用户模式下运行?,c,operating-system,printf,cpu,C,Operating System,Printf,Cpu,C中的printf函数不是系统调用,但它必须与系统调用一起工作才能输出字符串 因此,我们可以说printf在内核模式(特权CPU模式)下运行吗?printf需要对输出字符串进行系统调用,因为它是非特权的。如果它在特权模式下运行,首先就不需要系统调用。不,仅仅因为有东西在调用内核模式程序并不意味着它也是内核模式程序。使用printf的程序仍然在用户模式下运行,printf只调用操作系统(这是一个内核模式程序)来执行printf的一部分。printf是C库中的一个函数,在用户模式下加载并在用户进程中

C中的printf函数不是系统调用,但它必须与系统调用一起工作才能输出字符串


因此,我们可以说printf在内核模式(特权CPU模式)下运行吗?

printf需要对输出字符串进行系统调用,因为它是非特权的。如果它在特权模式下运行,首先就不需要系统调用。

不,仅仅因为有东西在调用内核模式程序并不意味着它也是内核模式程序。使用printf的程序仍然在用户模式下运行,printf只调用操作系统(这是一个内核模式程序)来执行printf的一部分。

printf
C
库中的一个函数,在用户模式下加载并在用户进程中运行


在调用系统调用将输出打印到终端时,处理器将控制权转移到内核,同时翻转特权位。

如果可以这样说的话,可以说调用
printf
的任何代码也在内核模式下运行。