2015-06-23 63 views
0

我想在Go中編寫一個簡單的實用程序來管理Linux上的網絡(有線和無線)連接,這是一種類似於NetworkManager和WICD的軟件。從Go訪問Linux網絡API

在Go中訪問Linux API的正確方法是什麼?我是否應該使用C綁定和本機Linux API調用,執行命令並解析其輸出,或者可能有一些庫設計用於執行我想要的操作?

回答

1

您很可能希望使用cgo,因爲它真的很容易調用任何C API

另外一個好處是,C的API,通常隨着時間相當穩定的庫創建者幾乎總是選擇一個新的功能,而不是打破現有API的API。

運行命令行工具和解析輸出很容易出錯,因爲您調用的軟件很可能會超時更改輸出,從而破壞了解析器。

+0

完全同意使用C API而不是解析命令行工具。事實上,如果你實現golang綁定來操作網絡,你應該考慮把它變成一個庫,在github上開源並在黑客新聞上發佈它。我想很多人會覺得它很有用。 :) –