在Linux或任何操作系统中区分黑白系统调用和用户调用

Difference b/w system calls & user calls in linux or any OS

我正在寻找答案很多天,但没有一个解决了我的问题。 有什么区别黑白系统电话& 用户调用,我想计算用户CPU时间& 用于c中printf()函数的内核CPU时间。用户cpu时间是CPU执行用户例程所花费的时间。 内核cpu时间是cpu执行内核例程所花费的时间。 我的问题是调用printf()的一些地方,最后调用系统调用来打印显示的字符。 我的意思是在例程printf()中说哪个部分属于用户& 哪个部分属于内核。 简单的赋值语句a = b是否涉及系统调用?


C中的简单a=b语句不涉及系统调用; 这完全在用户空间中执行。

printf()中,大多数代码在用户空间中执行(例如,提供的参数的格式化)。 仅用于将最终格式化文本写入stdout是调用的write系统调用。 您可以使用strace工具查看此信息,该工具显示应用程序进行的所有系统调用。