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 'variable не является дескриптором файла, действительным для вызова' write', это внутренний объект lua. –