printf 是特权指令吗?

is printf privileged instruction?

由于I/O指令是需要从用户模式切换到内核的特权指令,所以printf也被认为是特权指令吗?执行printf指令时是否有模式切换?

is printf also considered a privileged instruction?

不,printf不是特权,也不是指令,它是一个函数调用。

is there mode switch when performing printf [function calls]?

是的,最终在 printf 内部它会执行一个 write function 调用,这将传递到内核模式。但是请注意,由于缓冲,传递到内核模式可能不会在第一次 printf 调用时发生,并且可能会延迟到缓冲区已满或调用 fflush