在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
参考: https://blog.csdn.net/weiwangchao_/article/details/16880401 http://luajit.org/ext_c_api.html https://www.cnblogs.com/darkknightzh/p/5812763.html lua 调用 C,需要用到 lua 的 ffi 库,它允许从纯Lua代码调用外部C函数,使用C数据结构,但是C的数据类型并不一定都能转化成lua的数据类型。 #include <unistd.h> struct rlimit rlmt; char* get_size() }; char* set_size(double CORE_SIZE) if (setrlimit(RLIMIT_CORE, &rlmt) == -1) { return (char*)rlmt.rlim_cur; };
}; 【g++ 编译一下,变成 *.so 文件 】 下面为 Makefile 文件, 在目录下 make 能直接生成 *.so 文件 ,修改里面的 *.so *.o 文件 ## Linux/BSD LDFLAGS += -shared CFLAGS ?= -g -O -Wall #CC = gcc COPY = cp all: my_corefile.so my_corefile.o: my_corefile.c my_corefile.so: my_corefile.o clean:
lua 文件 local ffi = require 'ffi'
set_get_core = ffi.load('/home/chentao/c_test/c_lua/qq/mycorefile/my_corefile.so')--直接导入绝对路径 local a = set_get_core.get_size()
print("hass set") print(os.getenv("PWD")) print(" cd ",set_get_core.cd_chdir("/home")) 导入路径为 绝对路径 |
请发表评论