ffi.copy
メモリ間でデータをコピーする
lua
ffi.copy(dst, src, len)
ffi.copy(dst, str)説明
ffi.copy 関数は、src のデータを dst に対して指定したバイト数 len 分コピーします。len を省略すると、src がLuaの文字列であれば、終端バイトも含めて #src + 1 バイトがコピーされます。これは、Cのメモリ領域間のデータ転送や、Luaの文字列からCのメモリへのコピーに便利です。
補足
ffi.copyはmemcpy()やstrcpy()の効率的な代替として使用できます。srcがLua文字列の場合、lenは#src + 1バイトを超えてはなりません。
サンプルコード
lua
local ffi = require("ffi")
local src = ffi.new("char[6]", "hello")
local dst = ffi.new("char[6]")
ffi.copy(dst, src, 6)
print(ffi.string(dst)) -- helloこのコードは、Cのメモリ領域から別の領域にデータをコピーします。
互換性
- LuaJIT
関連項目
- ffi.string