我被问及系统调用,它们是什么,它们使用的模式以及read(),getchar()和sqrt()是否使用系统调用。
对于第一部分,我回答说系统调用提供了进程和OS之间的接口,这些接口在内核模式下使用。
困扰我的事实是,对我来说,使用那些3的系统调用的唯一函数是read()。
我是对的吗?或getchar()和sqrt()也使用系统调用?
(注意:来自stdio.h的unistd.h getchar()和来自math.h的sqrt()的read())
答案 0 :(得分:2)
系统和常规调用之间的区别在于系统调用必须向操作系统发出陷阱,而常规调用只调用另一个用户级子例程。你说的差别在于执行调用的模式是对的。
Sqrt不是系统调用。它只是执行一个简单的计算。如果我没记错的话,read()和getchar()都是系统调用,因为操作系统是处理输入/输出操作的操作系统。