[英]LuaJIT ffi : How to pass array of string to c function
我想將存儲字符串的Lua表傳遞給c函數。 所以,例如,如果我有
tStr = {"String1", "String2", "String3"}
我如何傳遞給C函數。 我想我必須打電話給ffi.new但是哪種類型我不確定..
local cVar = ffi.new("??" , tStr) -- I am not sure what to pass as type
參數
另外在C函數中,我不確定如何訪問整個數據,是否將字符串指針指向字符串,** str ??
void cFunction(**str); --What pointer type should be used here ??
...如果我錯過了一些明顯的問題,請道歉。 但我剛開始使用Lua和ffi。 所以我仍然不知道大多數事情..
這是一個簡單的例子:
local ffi = require"ffi"
ffi.cdef"int execvp(const char*file, const char**argv);"
local arg = ffi.new("const char*[3]", {"ls", "-l"})
ffi.C.execvp(arg[0], arg)
請注意常量3(數組的大小)
等於2(從Lua {"ls", "-l"}
傳遞的字符串數)
加1(數組中的最后一個元素實際上是零終止符)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.