我正在寻找答案很多天,但没有一个解决了我的问题。有什么区别黑白系统电话&用户调用,我想计算用户CPU时间&用于c中printf()函数的内核CPU时间。用户cpu时间是CPU执行用户例程所花费的时间。内核cpu时间是cpu执行内核例程所花费的时间。我的问题是调用printf()的一些地方,最后调用系统调用来打印显示的字符。我的意思是在例程printf()中说哪个部分属于用户&哪个部分属于内核。简单赋值语句a = b是否涉及系统调用?
答案 0 :(得分:1)
C中的简单a=b
语句不涉及系统调用;这完全在用户空间中执行。
在printf()
中,大多数代码在用户空间中执行(例如,提供的参数的格式化)。仅用于将最终格式化文本写入stdout是调用的write
系统调用。您可以使用strace
工具查看此信息,该工具显示应用程序进行的所有系统调用。