RosettaCodeData/Task/Call-a-function-in-a-shared.../Pluto/call-a-function-in-a-shared...

20 lines
480 B
Plaintext

local s1, s2 = "Hello", " World!"
local ffi = require "pluto:ffi"
local lib = ffi.open(os.platform == "windows" ? "msvcrt" : "libc.so.6")
if lib then
print("Shared library found")
lib:cdef[[
char *strcat(char *dest, const char *src);
size_t strlen(const char *str);
]]
local s = lib.strcat(s1, s2)
print(s)
print(lib.strlen(s))
lib = nil
else
print("Shared library not found.")
local s = s1 .. s2
print(s)
print(#s)
end