为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

LEATH 2021-03-31 13:15:03
该函数的文档中open()说明以下内容:open()系统调用将打开由路径名指定的文件。我认为这open()是系统调用的包装函数,而不是系统调用本身。还是系统调用的包装函数也称为系统调用?
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

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

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


查看完整回答
反对 回复 2021-04-16
?
12345678_0001

TA贡献1802条经验 获得超5个赞

另一个答案是正确的,但我也想补充一点,对我来说,解释为什么将open视为系统调用的最简单方法是,因为不能保证在所有OS上syscall都是相同的。例如,如果我们想象一个打开了syscall 1的操作系统,那么另一个操作系统可能会使用syscall 1进行写操作(就像linux x64一样),因此,为了兼容起见,open()添加了这样的功能,其中OS将open()作为调用提供到适当的syscall值,并且程序员不必担心在不同操作系统之间调用正确的syscall号码

查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 418 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信