- 博客(6)
- 资源 (22)
- 收藏
- 关注
原创 使用procd执行进程
在openwrt系统内init进程被procd取代,procd作为父进程可以监控子进程的状态。一旦子进程退出后即可在某一个时刻尝试进行重启进程。在op系统内使用procd监控的有uhttpd,netifd等。在/etc/init.d/文件夹内带有USE_PROCD=1标志,下面就介绍如何让procd启动某一个应用程序。
2016-12-28 10:44:57 15696
原创 使用fscanf获取固定格式内容
需求:读取/proc/net/arp文件的ip和mac信息#include #include char *arp_get(){ FILE *proc; char ip[16]; char mac[18]; if (!(proc = fopen("/proc/net/arp", "r"))) { return NULL; } /* Skip first line */
2016-12-26 15:08:11 1938
原创 简单定时器实现
经常会遇到这样的功能,需要开辟一个现场同时循环的跑一个任务,下面是简单实现的代码 调用select 加超时时间 #include #include #include #include #include void thread_client_timeout(const void *arg){ int count = 0; while (1) { struc
2016-12-26 13:50:30 289
原创 异步接收子线程的返回值
上次在做版本升级时遇到一个这样的需求:服务器需要向客户端发送版本文件,采用的是TCP + pthread来实现,其中,发送结果需要返回给主线程。这让我想起了子进程的操作退出后会给主进程发送一个信号,而主进程会在收到信号后调用WaitPid来获取返回值。而在线程里面退出就没有类似的信号发送出来,刚开始感觉无从下手,后面浏览了libevent代码后便有有了灵感,使用eventfd可以解决这个问题。
2016-12-20 13:16:30 1290
原创 libubox库avl树的使用例子
1. 定义一棵avl树struct avl_tree services;2. 初始化avl树int avl_strcmp(const void *k1, const void *k2, void *ptr){ return strcmp(k1, k2);}avl_init(&services, avl_strcmp, false, NULL);3. 插入结点
2016-12-20 10:26:26 2410
原创 ubus客户端向服务器请求信息的例子
openwrt用户空间进中通信常用的通信方式是使用ubus通信,下面给出一个例子,是客户端向服务器请求ap的个数。 服务器端代码 #include #include #include "libubus.h"static struct ubus_context *ctx;static struct blob_buf b;enum { REQ_STATION_COUN
2016-12-16 16:11:04 5666 1
live 生日提醒 理财易 备忘本 小软件
2011-03-10
live 生日提醒 理财易 备忘本 小软件
2011-01-14
live 生日提醒 理财易 备忘本 小软件
2010-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人