Golang cgo编程 [] string 转 C语言 char**
生活随笔
收集整理的這篇文章主要介紹了
Golang cgo编程 [] string 转 C语言 char**
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
| 1 2 3 4 5 6 7 8 9 10 11 12 | func Test(args[] string){ ???arg := make([](*_Ctype_char), 0)??//C語言char*指針創(chuàng)建切片 ???l := len(args) ???for?i,_ := range args{ ???????char?:= C.CString(args[i]) ???????defer C.free(unsafe.Pointer(char))?//釋放內存 ???????strptr := (*_Ctype_char)(unsafe.Pointer(char)) ???????arg = append(arg, strptr)??//將char*指針加入到arg切片 ???} ?????????????????????????????????????????????????????????????????????????????????? ???C.test(C.int(l), (**_Ctype_char)(unsafe.Pointer(&arg[0])))??//即c語言的main(int argc,char**argv) } |
上段代碼為go語言傳進os.args的參數(shù)行命令(string切片),通過cgo來調用,傳給C語言層
的main(int argc,char**argv) 這里,已重命名C代碼的main()函數(shù)為test(),主進程由go來啟動
golang運用cgo調用C代碼,golang的 [ ]string 轉C語言的 char**,步驟為上述代碼的2-9行。
本文轉自 ponpon_ 51CTO博客,原文鏈接:http://blog.51cto.com/liuxp0827/1344922,如需轉載請自行聯(lián)系原作者
總結
以上是生活随笔為你收集整理的Golang cgo编程 [] string 转 C语言 char**的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决局域网共享好用脚本集
- 下一篇: centos7 systemctl st