1
我試圖使用Lua FFI使用LuaJIT將一些文本追加到文件,但我不是很知道C,所以我有一些麻煩。這是代碼:使用Lua寫入文件FFI
local ffi = require "ffi"
ffi.cdef[[
typedef int __kernel_ssize_t;
typedef __kernel_ssize_t ssize_t;
ssize_t write(int fildes, const void *buf, size_t nbyte);
]]
local f = io.open("/tmp/test", "a+") -- Opening file in append mode
local message = "Hello World"
ffi.C.write(f, message, string.len(message))
f:close()
但我收到以下錯誤:
luajit: test.lua:12: bad argument #1 to 'write' (cannot convert 'void *' to 'int')
stack traceback:
[C]: in function 'write'
c.lua:12: in main chunk
[C]: at 0x0100001490
存儲在你的'F的值'變量不是對'write'的調用有效的文件描述符,它是一個lua內部的文件對象。 –