
C
文章平均质量分 71
bywayboy
C C++ Linux OpenWRT PHP WEB前端. http://www.extgui.com
展开
-
lua+libuv的一些开发心得
不断的查阅资料, 不断的学习, 阅读 lua代码. 一个人做开发其实是一个痛苦的过程,非常考验毅力和耐心。不过好在经过几个月晚上的学习积累, 已经渐入佳境。觉得有必要做一下笔记了。下面记录下踩过的一些坑。第一个坑原计划将sqlite数据库封装完全异步化的, 实现思路, 使用 uv_queue_work + 队列 来实现异步的数据库操作, 以达到利用一个独立线程来操作数据库的目的。 起初 我觉得通过 lua_newthread 创建一个线程, 然后在这个线程不和 的父线程又任何交集的情况下,应该会是线程原创 2022-04-27 02:24:40 · 717 阅读 · 0 评论 -
在LUA中使用异步IO的思考
本文介绍利用lua协程+libuv 实现异步IO的方法原创 2022-04-24 02:21:57 · 2193 阅读 · 0 评论 -
LUA中绑定C对象的3种方法
对于C 和LUA之间的对象绑定, 大致可以分为以下几种.## 1. 在整个软件生存周期都有效的对象指针.这种类型的C对象, 不用关心C对象的生存周期. 可以使用 lua upvalue 来进行绑定.```c```### 2. 不知道何时会失效的C对象.这类对象的生存周期不确定, 比如一个网络连接, 在你的程序运行的任何时间它都有可能失效(比如:连接断开了). 可以给C对象增加一个引用计数,同时使用匿名元表的方式来绑定到lua对象.```c/*绑定对象的工具函数 Lua ...原创 2021-06-19 02:57:28 · 1158 阅读 · 0 评论 -
解决OpenSSL 在VC2015下链接报错的问题。
起因: 公司项目 服务器的nginx是使用的定制版,使用了concat、缩略图生成等模块,为了方便同事们在办公室环境下使用nginx,在Windows下编译nginx,并带上这两个模块。之前在 VC2013 之前的版本一直编译很顺利,最近开发环境改用了 VC2015 突然发现编译不过了。报了一堆link error!libeay32.lib(ui_openssl.obj) : error LNK2原创 2015-10-07 11:05:40 · 14336 阅读 · 8 评论 -
DIY 一个 JSON解析器。
从最早使用的C-JSON,性能没什么问题,缺点是最大只支持32层嵌套,不过可以通过修改宏来增加嵌套层数, 最近使用LUA开发服务器业务部分,找了几个JSON库,要么标准支持不尽人意,要么则是使用LUA实现的,性能无法满足要求。与其漫无目的在网络上到处寻找,不如自己动手写一个。反正这东西也不复杂。定了个简单的设计要求: 使用C语言开发,编译为LUA模块. 支持UTF-8 JSON 中一般原创 2015-07-29 23:35:39 · 2080 阅读 · 0 评论 -
用C为LUA写一个超迷你的模板引擎.
中午在做HTTP服务器,内嵌了LUA原创 2014-11-12 20:09:49 · 4694 阅读 · 0 评论 -
在C语言中调用Unix Shell脚本。
最近项目要求需要在C语言中调用shell脚本。原创 2014-08-05 11:30:44 · 2010 阅读 · 0 评论 -
OpenWRT UCI API的使用
OpenWRT UCI API的使用UCI 是OpenWRT为实现配置集中化而引入的一个软件包, 通过修改UCI,可以实现对OpenWRT的绝对部分配置的修改.LUCI(OpenWRT 的WEB配置界面)也是通过读UCI配置文件的操作来实现用户对路由的配置的。通过掌握UCI的API的使用,可以方便地将您的软件的配置接口集成到LUCI中.LUCI配置文件简介LUCI的配置原创 2014-03-09 21:51:50 · 35595 阅读 · 8 评论 -
Linux 下 毫秒级延时函数
/* 毫秒级 延时 */void Sleep(int ms){ struct timeval delay; delay.tv_sec = 0; delay.tv_usec = ms * 1000; // 20 ms select(0, NULL, NULL, NULL, &delay);}原创 2014-03-05 16:17:14 · 19008 阅读 · 0 评论 -
通过IP地址获取MAC
在最一个Linux中 需要通过局域网的IP地址获取MAC, 自然而然地想到了可以通过查询MAC缓存来实现。一般情况下 可以通过读取 /proc 文件系统中的 /proc/net/arp 文件来实现。但也可以通过 ioctl 来获取。缺点是必须明确指定设备名称 比如获取局域网的 则要指定 交换机接口的名字 ,在我的路由器里是 br-lan 也有些是 br0。bool querymacby原创 2014-02-18 09:35:40 · 3698 阅读 · 0 评论 -
一段失败的代码 inotify的使用
在最近的工作中,由于需要在路由器上检测局域网所有连接的电脑。于是想到一个办法,监控arp缓存。有2个方法。1、从内核入手。邻居子系统。arp_tbl改变后自己通过 netlink 放通知,第二个方法 通过监控 /proc/net/arp 的改变。但由于 /proc 文件系统是一类特殊的文件系统。inotify无法监控,也是做了后才知道。权当学习 inotify的用法吧。将这段代码贴出来做个记号。原创 2014-02-14 19:15:10 · 3005 阅读 · 3 评论 -
检测路由器网关,上网的网卡 MAC地址,ip地址。网关MAC地址。
1、关于默认网关的监测,通常情况下 使用 route PRINT -4 可以获取到默认网关,如果您有多个网卡且都连接到了路由 您会发现 有多个默认网关。而跳跃点数则是优先级。数字越小 优先级越高。static void getIpAddressByIndex(DWORD ifIndex, char * ip){ DWORD dwSize = 0, i =0; if(ERROR_I原创 2014-02-21 16:02:55 · 5564 阅读 · 0 评论 -
JSON 支持库 2.3#0 发布
json支持库开发完成便得到了广大易友的一直好评,但其中存在的问题也被广大易友一一发现~ 哈哈……。其中困扰易友最大的问题便是其无引号属性名的问题。因为支持库最粗是严格按照 www.json.org的 json语法说明而开发。仅仅支持 双引号括起来的字符串以及标准转义。但后来发现并不好用,实际上JSON的应用大多在WEB,而JavaScript支持很多的转义,而且还支持单引号括起来的字符串。这些在后来的升级中已经一一解决。同时为了更全面地兼容易语言和Unicode,JSON内部采用了GB18030编码。最近原创 2011-04-22 09:24:00 · 3676 阅读 · 0 评论 -
YAML的PHPphp扩展。
网上闲逛。突然发现php有yaml这个东西。无奈找不到扩展。最后找到一个源码。syck的。呵呵…… 编译是个麻烦事。更何况我还只有 load和dump两个函数。值呢个是 string 到 array 和 array到string。 手头只有vs2005 没招。下个php源码。建个项目开始,找google要了N篇答案。N>=20.看完后迷迷糊糊开始了。一切顺利----除了做笔记花费了不少原创 2009-03-17 01:11:00 · 5493 阅读 · 0 评论