linux - linux或任何操作系统中系统调用和用户调用之间的区别

标签 linux operating-system

我找了很多天的答案,但没有一个能解决我的问题。 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/

相关文章:

linux - SVN:结帐访问被拒绝

c - 保存用户 ID 的目的

linux - 链接到 linux 共享库

linux - 区分蓝牙键和键盘键

operating-system - 内置脚本语言可用于所有主要操作系统?

operating-system - 四个条件都存在,死锁就一定成立吗?

c++ - 使用条件变量在 Linux 中实现 Windows 事件?

java - Mac OS X 上 Java 编程编辑器的问题

c - 如何安排两个任务?

c - 如何在xv6操作系统中运行c程序