系统调用 - 内核使用的函数

时间:2017-06-19 22:53:27

标签: c kernel

我被问及系统调用,它们是什么,它们使用的模式以及read(),getchar()和sqrt()是否使用系统调用。

对于第一部分,我回答说系统调用提供了进程和OS之间的接口,这些接口在内核模式下使用。

困扰我的事实是,对我来说,使用那些3的系统调用的唯一函数是read()。

我是对的吗?或getchar()和sqrt()也使用系统调用?

(注意:来自stdio.h的unistd.h getchar()和来自math.h的sqrt()的read())

1 个答案:

答案 0 :(得分:2)

系统和常规调用之间的区别在于系统调用必须向操作系统发出陷阱,而常规调用只调用另一个用户级子例程。你说的差别在于执行调用的模式是对的。

Sqrt不是系统调用。它只是执行一个简单的计算。如果我没记错的话,read()和getchar()都是系统调用,因为操作系统是处理输入/输出操作的操作系统。