- 浏览: 763717 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
testlib.c
生成动态库:
gcc -g -o testLib.so -fpic -shared testlib.c
[root@localhost bin]# curl 127.0.0.1:6699/test
34
abcdef
1
#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)
[root@localhost bin]# curl 127.0.0.1:6699/test
34
abcdef
1
发表评论
-
mac nginx启动
2021-01-15 10:10 384brew services start nginx 1.1 ... -
nginx与lvs的异同
2017-11-30 11:51 915http://blog.csdn.net/BuquTianya ... -
lua weak表与gc
2017-11-29 09:56 559local a = {} local b = {} s ... -
lua single-method
2017-11-29 09:49 518local function newObject (val ... -
lua unpack
2017-11-09 11:07 389unpack接受一个数组作为输入参数,返回数组的所有元素。被用 ... -
resty thread
2017-07-07 14:35 367local t = {} local functio ... -
resty 正则
2017-07-04 17:32 455local m, err = ngx.re.match(& ... -
Nginx Lua脚本执行顺序
2017-06-15 09:11 835[img] [/img] -
ngx timer
2017-05-20 08:11 460local delay=3 local handle ... -
openresty文件自适应
2017-05-18 14:14 486location ~ ^/([-_a-zA-Z0-9/]+ ... -
lua_shared_dict
2017-05-18 12:01 22751.定义一块名为my_cache的共享内存空间,内存大小为si ... -
lua 协程(coroutine)
2016-11-30 10:34 520local function f(a) local ... -
lua loadstring
2016-11-29 10:08 822loadstring 不会有边界效应产生,他仅仅编译 chun ... -
lua book
2016-05-05 10:26 451http://lua.ren/topic/157/lua书 -
lrucache
2016-04-19 16:21 606local _M = {} --local lruc ... -
openresty资料
2016-03-15 09:57 857视频 http://study.163.com/course/ ... -
openresty缓存
2016-03-09 15:12 1118shared dict:这个cache是nginx所有work ... -
cjson
2016-03-07 10:42 559local json = require("cj ... -
nginx使用lua文件
2016-03-02 10:13 679location /test_var { con ... -
获取 uri 参数
2016-02-23 11:38 403location /test { c ...
相关推荐
Lua到Rust FFI代码生成激励榜样锈#[derive(LuaMarshalling)]pub struct A { string: String , integer: i32 ,}pub mod extern_ffi { pub fn make_a (string: & str , integer: i32 ) -> A { A { string: string....
总结来说,"lit-hoedown"项目是将高效的Markdown解析器Hoedown通过lua FFI技术进行封装,创建了一个名为"lit"的lua模块,使得lua开发者能够方便地处理Markdown文本,增强了lua在文档处理和文本格式转换方面的能力。
在Linux环境下,构建和使用Lua 5.2.0静态库是软件开发中常见的任务,特别是在需要嵌入Lua脚本语言能力的C/C++项目中。Lua是一种轻量级、可扩展的脚本语言,因其简洁的语法和高效性能而受到广泛欢迎。以下是关于Linux...
在Lua中调用Windows API需要使用如`luajit-ffi`或`tolua++`等库来绑定C/C++的动态链接库(DLL)。这些库允许我们直接在Lua中使用C语言的类型和函数。 在`lua 调用windows api.txt`中,可能包含了如何使用Lua调用...
名称lua-resty-libinjection-用于libinjection的LuaJIT FFI绑定地位该库正在积极开发中,可以投入生产描述该库为 ,SQL / SQLi和XSS标记程序和分析器提供FFI绑定。安装像安装其他任何OpenResty lua模块一样,安装此...
魔术师 Lua使用FFI绑定到ImageMagick的或GraphicsMagick的 。安装您将需要同时安装LuaJIT(任何版本)和MagickWand或GraphicsMagick。 在Ubuntu上,要使用ImageMagick,可以运行: $ sudo apt-get install luajit$ ...
lua-resty-lrucache, 在 LuaJIT FFI上,基于Lua缓存 电子邮件名称lua-resty-lrucache - 基于 LuaJIT FFI的land缓存目录NAME状态概要说明描述方法新插件设置 。删除先决条件安装工具待办事项社区服务英文邮件列表中文...
总结,这个例子展示了 Lua 如何利用 C++ DLL 来扩展其功能,通过 Visual Studio 2010 创建 C++ 接口,并在 Lua 端使用 FFI 进行调用。这个过程涉及到了跨语言调用、动态链接库、C 库接口、异常处理和内存管理等多个...
《lua扩展库V1.51》是针对lua编程语言的一个功能丰富的库集合,它为lua程序员提供了更多元化的操作工具,特别是在硬件控制和数据处理方面。以下将详细阐述其中的一些核心库及其功能: 1. **bit库**: - `bit`库是...
在IT领域,LUA(Lightweight User-Agent)是一种轻量级的脚本语言,常用于游戏开发、嵌入式系统以及服务器配置等场景。而DLL(Dynamic Link Library)是Windows操作系统中的动态链接库,它封装了一系列函数和资源,...
《fzy-lua-native:Luajit FFI与FZY高效结合的应用解析》 在IT领域,特别是软件开发中,高效、灵活的编程语言和工具是提升开发效率的关键。"fzy-lua-native"项目正是这样一种创新的结合,它巧妙地将LuaJIT的Foreign...
这里,我们使用了Lua的FFI(Foreign Function Interface)库来定义C函数的原型,并加载DLL。`ffi.load`函数会查找指定路径的DLL文件,并返回一个对象,通过这个对象我们可以调用DLL中的函数。 请注意,实际操作时,...
lua-resty-nettle, LuaJIT FFI的绑定( 低级加密库) lua-resty-nettle针对荨麻疹( 低级别加密库)的LuaJIT FFI绑定概要local require = requirelocal print = printlocal gsub = string.g
`lua-libcidr-ffi` 是一个专门为 LuaJIT 设计的库,它利用了 LuaJIT 的 Foreign Function Interface(FFI)特性来绑定 `libcidr` 库,从而在 Lua 中提供对CIDR(Classless Inter-Domain Routing)表示的IPv4和IPv6...
5. **数据库访问**:LuaJIT-FFI(Foreign Function Interface)允许直接操作二进制数据,可以用来连接和操作各种数据库,如MySQL、SQLite等。luasql则提供了一个统一的接口来访问不同的关系型数据库。 6. **图形与...
在Lua中,实现MD5功能通常需要借助于C库,如luajit-ffi或lua-openssl等。这些库提供了与C语言接口,允许Lua调用C语言编写的MD5函数。以下是一个简单的例子,展示如何使用luajit-ffi库计算字符串的MD5: ```lua ...
这个库是 LuaJIT-FFI(Foreign Function Interface)的一个扩展,允许 Lua 直接调用 C 库的功能,而无需通过 Lua 的 C API 编写绑定代码。 标题“Lua cjson.dll 亲测可用”表明这是一个已经过测试并确认可以在 Lua ...
lua-resty-lrucache-基于LuaJIT FFI的Lua-land LRU缓存。 目录 安装 社区 英文邮件列表 中文邮件列表 错误和补丁 作者 版权和许可 也可以看看 地位 该库被认为可以投入生产。 概要 -- file myapp.lua: example ...
LuaJIT提供了FFI(Foreign Function Interface),可以直接调用C库,进一步提升性能。 8. **代码优化** 编写清晰、简洁的代码,避免冗余计算和不必要的函数调用。利用Lua的表达式求值顺序,以及理解函数调用开销,...