You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API与系统调用的区别:read()、write()等是API还是系统调用?

read()/write()/open():是API还是系统调用?

参考《Operating Systems Concepts》第9版63-65页内容

你的理解完全正确,这里的核心是分层架构下的约定俗成简化称呼:

  • 你在代码里直接调用的read()、write()、open()是用户态API函数(属于C标准库这类运行时支持系统的一部分)。它们的核心作用就是作为system-call interface的入口:拦截你的调用,完成参数预处理后,通过特定的硬件指令(比如x86的syscall、ARM的svc)触发CPU切换到内核态,调用内核中真正的系统调用逻辑。
  • 很多资料直接把这些API叫做“系统调用”,是因为它们和内核里的系统调用一一绑定,且是程序员接触系统特权功能的唯一直观入口,属于行业里简化表述的惯例。但严格从操作系统架构的角度区分:用户态的API是封装层,内核态的系统调用才是真正执行特权操作的核心逻辑。
  • 举个具体的例子:Linux下调用C标准库的read()时,它会先做参数合法性检查、缓冲区初始化,然后触发syscall指令进入内核,执行内核中的sys_read函数完成实际的读取操作,之后再把结果返回给用户态的read()API,最终回到你的应用代码。

内容的提问来源于stack exchange,提问作者AAA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:39:19