RosettaCodeData/Task/Call-a-foreign-language-function/Lua/call-a-foreign-language-function.lua

15 lines
334 B
Lua
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
local ffi = require("ffi")
ffi.cdef[[
char * strndup(const char * s, size_t n);
int strlen(const char *s);
]]
local s1 = "Hello, world!"
print("Original: " .. s1)
local s_s1 = ffi.C.strlen(s1)
print("strlen: " .. s_s1)
local s2 = ffi.string(ffi.C.strndup(s1, s_s1), s_s1)
print("Copy: " .. s2)
print("strlen: " .. ffi.C.strlen(s2))