从 Go 访问 Linux 个网络 API
Accessing Linux network APIs from Go
我想用 Go 编写一个简单的实用程序来管理 Linux 上的网络(有线和无线)连接,类似于 NetworkManager 和 WICD 的软件。
在 Go 中访问 Linux API 的正确方法是什么?我应该使用 C 绑定和本机 Linux API 调用、执行命令并解析其输出,还是可能有一些库旨在执行我想执行的操作?
您很可能想使用 cgo 因为它很容易调用任何 C API
另一个好处是 C APIs 通常随着时间的推移非常稳定,因为库创建者几乎总是选择新函数而不是破坏现有函数的 API。
运行 命令行工具和解析输出容易出错,因为您调用的软件很可能会超时更改它的输出,从而破坏您的解析器。
我想用 Go 编写一个简单的实用程序来管理 Linux 上的网络(有线和无线)连接,类似于 NetworkManager 和 WICD 的软件。
在 Go 中访问 Linux API 的正确方法是什么?我应该使用 C 绑定和本机 Linux API 调用、执行命令并解析其输出,还是可能有一些库旨在执行我想执行的操作?
您很可能想使用 cgo 因为它很容易调用任何 C API
另一个好处是 C APIs 通常随着时间的推移非常稳定,因为库创建者几乎总是选择新函数而不是破坏现有函数的 API。
运行 命令行工具和解析输出容易出错,因为您调用的软件很可能会超时更改它的输出,从而破坏您的解析器。