簡體   English   中英

LuaJIT ffi:如何將字符串數組傳遞給c函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM