- 博客(6)
- 收藏
- 关注
原创 Lua C API 教程
本教程介绍了 Lua C API 的基础知识,重点讲解了两个核心概念:Lua 状态机(lua_State)和虚拟栈机制。通过实例代码演示了如何在 C 程序中创建 Lua 环境、执行 Lua 脚本以及调用 Lua 函数。教程采用循序渐进的方式,从简单的"Hello World"示例到完整的 C 调用 Lua 函数流程,帮助开发者理解 Lua 与 C 之间的数据交换原理。内容涵盖状态机创建、栈操作、错误处理等关键知识点,为后续更复杂的 Lua 与 C/C++ 交互开发奠定基础。
2025-07-17 18:54:36
1193
1
原创 Root 还是非 Root?OpenResty 服务权限的终极指南
OpenResty 服务权限安全指南 本文深入探讨 OpenResty 服务权限配置的最佳实践,强调不应使用 root 用户处理网络请求的关键安全原则。通过分析 Master-Worker 架构的设计优势,提出安全的权限配置方案:使用 root 启动服务,以专用低权限用户(如 openresty)运行工作进程。文章提供完整的配置步骤,包括创建专用用户、调整配置文件、设置目录权限和验证运行状态。这种方案既能满足绑定特权端口的需求,又能最大限度降低安全风险,是部署 OpenResty 服务的安全基准。
2025-07-17 16:37:54
1097
原创 Lua C 扩展实战:从零开始将 zlib 封装为 Lua 模块
Lua C 扩展实战:封装zlib为Lua模块 本文详细介绍了如何在macOS环境下为Lua 5.1编写C扩展模块,重点讲解将zlib压缩库封装为Lua模块的全过程。主要内容包括: 环境准备:确认系统Lua 5.1和zlib库的存在 项目结构:创建C源文件、Makefile和测试脚本 核心实现: 使用Lua C API处理参数传递 实现compress/decompress函数 采用"循环尝试"策略处理动态缓冲区 模块注册:Lua 5.1特有的luaL_register注册方式 编译部署
2025-07-15 19:10:26
925
原创 Lua为何刻意移除 continue 关键字
Lua设计者刻意移除了continue关键字,这是基于保持语言核心简洁的设计哲学。他们认为几乎所有continue能实现的功能都可以通过if语句更清晰地完成。Lua提供了三种替代方案:最推荐的if条件块方式、功能更强的goto跳转(5.2+版本),以及兼容旧版的嵌套break技巧。这一设计选择鼓励开发者采用更结构化、更易读的代码风格,体现了Lua简约优雅的语言特性。
2025-06-06 17:28:54
1489
原创 Lua table.sort 使用说明
Lua的table.sort()函数用于对数组类表格进行原地排序,支持自定义比较函数。默认按升序排序,可通过comp函数实现降序、字段排序等复杂逻辑。比较函数需满足严格弱序规则。该函数直接修改原表格,不返回新表格,通常基于快速排序实现(O(N log N))但不保证稳定性。示例展示了数值排序、字符串排序、多字段排序以及模拟稳定排序的方法。使用时应注意仅适用于连续数字索引的数组,混合表格可能导致意外结果。
2025-05-28 18:53:47
2355
原创 Dockerfile 优化策略:构建更小、更快、更安全的镜像
Dockerfile 优化是一个持续的过程。通过遵循上述策略,您可以构建出更小、更快、更安全的 Docker 镜像,从而提高应用程序的部署效率和安全性。记住,没有一劳永逸的优化方案,需要根据您的具体应用场景和需求进行调整。不断实践和探索,您将能够编写出更优秀的 Dockerfile。
2025-02-17 10:14:01
2410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅