我被问及系统调用,它们是什么,它们用于哪种模式,以及 read()、getchar() 和 sqrt() 是否使用系统调用。
对于第一部分,我回答说系统调用提供进程和操作系统之间的接口(interface),这些在内核模式下使用。
困扰我的是,对我来说,唯一使用这 3 个系统调用的函数是 read()。
我说的对吗?或者 getchar() 和 sqrt() 也使用系统调用?
(注意:来自 unistd.h 的 read() 来自 stdio.h 的 getchar() 和来自 math.h 的 sqrt())
最佳答案
系统调用和常规调用的区别在于,系统调用必须向操作系统发出陷阱,而常规调用只调用另一个用户级子例程。您说得对,区别在于执行调用的模式。
Sqrt 不是系统调用。它所做的只是执行一个简单的计算。如果我没记错的话,read() 和 getchar() 都是系统调用,因为操作系统是处理输入/输出操作的系统。
关于c - 系统调用 - 内核使用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641146/