第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過節(jié)點調用golang函數(shù)時無法打開文件

通過節(jié)點調用golang函數(shù)時無法打開文件

Go
SMILET 2023-05-08 18:05:33
我按照https://medium.com/learning-the-go-programming-language/calling-go-functions-from-other-languages-4c7d8bcc69bf中的教程使我的節(jié)點應用程序能夠調用 golang 函數(shù)。提供的示例就像一個魅力。但是,我確實無法在另一種情況下實施。在這里,我想通過僅提供絕對路徑來打開一個文件并調用 Go 的函數(shù),但它總是告訴我由于沒有這樣的文件而無法找到該文件。我試圖直接在 Go 中運行它并且它有效!我做錯了嗎,或者這是一個實際的錯誤/未完成的功能?這是我為 c-style lib 構建的 golang 源代碼:package mainimport "C"import (    "bufio"    "fmt"    "log"    "os")func main() {}//export ReadSomethingfunc ReadSomething(filePath string) {    file, err := os.Open(filePath)    if err != nil {        log.Fatal(err)    }    defer file.Close()    scanner := bufio.NewScanner(file)    for scanner.Scan() {        fmt.Println(scanner.Text())    }    if err := scanner.Err(); err != nil {        log.Fatal(err)    }}我用這個命令構建它:go build -buildmode=c-shared -o simpleread.so main.go
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經(jīng)驗 獲得超6個贊

請記住,Go 中的字符串就像切片。它們由指向支持數(shù)據(jù)的指針和長度組成。這就是為什么在您的代碼中GoString定義為:


var GoString = Struct({

    p: "string",  // pointer

    n: "longlong" // length

});

我建議你定義一個函數(shù)來創(chuàng)建一個GoStringeg


function NewGoString(str) {

    return new GoString({p: str, n: str.length})

}

您可以在代碼中使用它,例如:


var simpleRead = ffi.Library("./simpleread.so", {

    ReadSomething: ["void", [GoString]]

});


simpleRead.ReadSomething(NewGoString("/path/to/your/file"))


查看完整回答
反對 回復 2023-05-08
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號