我找了很多天的答案,但没有一个能解决我的问题。 b/w系统调用和用户调用有什么区别,我想计算C中printf()函数的USER CPU时间和内核CPU时间。用户cpu时间是CPU执行用户例程所花费的时间&内核cpu时间是所花费的时间由 cpu 执行内核例程。我的问题是在调用 printf() 的某个地方,最后调用系统调用以在显示时打印字符。我的意思是说在例程 printf() 中,哪部分属于用户,哪部分属于内核。简单赋值语句a=b是否涉及系统调用?
最佳答案
C 中一个简单的a=b
语句不涉及系统调用;这完全在用户空间中执行。
在 printf()
中,大部分代码在用户空间中执行(例如,提供的参数的格式)。仅在将最终格式化文本写入标准输出时才会调用 write
系统调用。您可以使用 strace
工具看到这一点,该工具显示应用程序进行的所有系统调用。
关于linux - linux或任何操作系统中系统调用和用户调用之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15341184/