【问题标题】:How do I make calls to operating system functions in the language of my choice?如何以我选择的语言调用操作系统函数?
【发布时间】:2013-05-10 16:26:55
【问题描述】:

这是我一直想回答的问题。

Windows 和 Mac OS X 等主要操作系统通常只“支持”一种或几种语言(即 C++、C#、适用于 Windows 的 VB、适用于 Mac OS X 的 Objective-C)。

以 Go 语言为例,显然可以在不使用“支持的”语言的情况下与操作系统交互并调用这些函数。

这怎么可能?

开发人员需要了解什么才能使用他选择的语言调用这些系统函数?

我正在寻找这些调用如何在代码中表示 - 以及它们在执行时如何使用。

我希望没有一个适合每种语言系统组合的答案...但是一些不同的示例会有所帮助。

【问题讨论】:

  • 这将非常依赖于语言。使用您的 Go 示例(我应该强调我没有经验,这是基于快速的 Google 搜索),您可以使用 syscallos 包。
  • 一个人需要知道如何谷歌。除此之外,我怀疑有一个通用的答案。所以问题很可能是"not constructive"

标签: system-calls


【解决方案1】:

ABI (Application Binary Interface) 定义了如何调用操作系统。为了能够进行这些调用,需要特定的编程语言实现来生成符合该 ABI 的代码。

在 C 中进行 OS 调用得到了很好的支持,并且许多解释性语言(例如 perl、python、tcl)都是用 C 实现的,因此它们本质上是通过 C 进行调用的。

【讨论】:

  • 谢谢。我认为您的回答将引导我朝着我想要的方向前进。
猜你喜欢
  • 2018-11-06
  • 2017-04-10
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
相关资源
最近更新 更多