首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作系统提供哪些服务来执行C程序?

问操作系统提供哪些服务来执行C程序?
EN

Stack Overflow用户
提问于 2014-10-18 09:23:16
回答 1查看 176关注 0票数 1

关于c程序的执行,我知道编译器将代码转换成机器语言,然后是executed.But,我想知道操作系统提供了哪些服务来实现这一点。如果我正在使用fopen函数,请解释一下操作系统是如何处理它的。将文件从硬盘读取到memory...etc中。对于所有这些操作,哪些系统调用是内部调用的?如何将显式函数(如fopen、printf )转换为系统调用?如果可以在上下文中查看c++编程的内部系统调用,请让我知道要遵循的路径来查看它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-18 10:25:15

语言通常有自己的API作为运行时支持的一部分(例如C标准库中的fopen() )。这些都是语言的一部分,而不是操作系统本身的一部分。

该语言的运行时使用操作系统的低级API。例如,fopen()可能使用内核API的open()函数(Linux),但它可能是DLL中的createfile()函数,而不是内核中的createfile()函数(Windows)。在某些情况下,它不是那样的,更像是发送到不同进程的消息(微内核常见)。

不管它在哪里结束(以及如何结束),它可能会找到自己的方式到某种类型的“虚拟文件系统”层,并且取决于它是否在VFS的缓存中,它可能被或不可能被转发到负责处理文件系统的代码,该代码可能转发给某种类型的存储设备驱动程序(例如USB闪存设备驱动程序),而后者又可能将其转发到另一个设备驱动程序(例如USB控制器驱动程序)。

大多数情况下,对于不同的开放源码软件,它可能是非常不同的,所以没有一个单一的答案是正确的,对所有他们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26438164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档