【问题标题】:Accessing Linux network APIs from Go从 Go 访问 Linux 网络 API
【发布时间】:2015-06-23 08:36:35
【问题描述】:

我想用 Go 编写一个简单的实用程序来管理 Linux 上的网络(有线和无线)连接,一个类似于 NetworkManager 和 WICD 的软件。

在 Go 中访问 Linux API 的正确方法是什么?我应该使用 C 绑定和本机 Linux API 调用、执行命令并解析其输出,还是应该使用一些库来做我想做的事情?

【问题讨论】:

    标签: linux networking go network-programming wifi


    【解决方案1】:

    您很可能希望使用cgo,因为它很容易调用任何 C API

    另一个好处是 C API 通常随着时间的推移相当稳定,因为库创建者几乎总是选择新函数而不是破坏现有 API。

    运行命令行工具和解析输出很容易出错,因为您调用的软件很可能会超时更改它的输出,从而破坏您的解析器。

    【讨论】:

    • 完全同意使用C API而不是解析命令行工具。事实上,如果你实现了操纵网络的 golang 绑定,你应该考虑把它变成一个库,在 github 上开源并发布在黑客新闻上。我想很多人会觉得它很有用。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多