lua ffi

testlib.c

#include <stdio.h>
#include <string.h>

char* fun_strcat(char* str1,char* str2){
return strcat(str1,str2);
}


生成动态库:
gcc -g -o testLib.so -fpic -shared testlib.c



local ffi = require("ffi")

ffi.cdef[[
typedef struct { double x, y; } A;
char* fun_strcat(char* str1,char* str2);
enum enum_type
{
type1 = 1,
type2,
};;
]]

local A = ffi.metatype("A",{})

local a = A(3, 4)
ngx.say(a.x, a.y)

local clib = ffi.load("/usr/local/code/testLib/testLib.so")
local str1 = ffi.new("char[?]", 10)
local str2 = ffi.new("char[?]", 10)
local s1 = "abc"
local s2 = "def"
ffi.copy(str1, s1, string.len(s1))
ffi.copy(str2, s2, string.len(s2))

local str = ffi.string(clib.fun_strcat(str1,str2))
ngx.say(str)

ngx.say(ffi.C.type1)



# curl 127.0.0.1:6699/test
34
abcdef
1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值