系统调用的包装函数是否也称为系统调用?

use*_*763 5 c linux system-calls

文档open()功能说的情况如下:

open()系统调用打开由路径名指定的文件。

我认为这open()是系统调用的包装函数,本身不是系统调用。

或者系统调用的包装函数也称为系统调用?

Pet*_*lev 3

简短的回答 - 是的。
长答案 - 这取决于。系统调用是计算机程序向其执行的操作系统内核请求服务的编程方式。这可能包括与硬件相关的服务(例如,访问硬盘驱动器)、新进程的创建和执行以及与集成内核服务(例如进程调度)的通信。系统调用提供了进程和操作系统之间的重要接口。

系统调用没有定义为特定的函数。相反,它们是对服务的请求,或者换句话说,是操作系统 API。它们几乎总是通过语言标准提供的标准函数对用户隐藏。并且该标准在不同操作系统的编译器中实现。

  • 我同意。请注意,POSIX 没有定义任何系统调用(请参阅[定义 389-399](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_389));它仅定义提供服务的函数。如何实现任何给定功能所需的效果的细节由实现决定。 (2认同)