Call a foreign-language function: Difference between revisions

Add Lua (LuaJIT) solution
m (→‎{{header|Mercury}}: #include <string.h> rather than declrare strdup)
(Add Lua (LuaJIT) solution)
Line 688:
`free(@p)`;
);</lang>
 
=={{header|Lua}}==
 
Using the [http://luajit.org/ext_ffi.html FFI library] available in [http://luajit.org/ LuaJIT]:
 
<lang lua>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)
s_s1 = ffi.C.strlen(s1)
print("strlen: " .. s_s1)
 
s2 = ffi.string(ffi.C.strndup(s1, s_s1), s_s1)
print("Copy: " .. s2)
print("strlen: " .. ffi.C.strlen(s2))
</lang>
 
=={{header|Maple}}==
Anonymous user