发布时间:2012-12-27 17:02:44
本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了。趁有时间,好好把这方面的东西总结一番。一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共同学习,共同进步。 能在CU上混的人绝非等闲之辈。因此,小弟这里说明一下:本系列博文主要侧重于分析Netfilter的实现机制,原理和设计思想层面的东西,同时从用户态的iptables到内核态的Netfilter其交互过程和通信手段等。至于iptables的入门用法方面的东西,网上随便一搜罗就有一大堆,我这里不浪费笔墨了。 &n......【阅读全文】
发布时间:2012-12-25 15:10:29
作为一个共享库,应该需要统计使用本库的各种应用程序的使用频率,使用方法等信息。才能针对主要应用做出更好的改进。 那么就需要记录调用者的进程id或者进程名称,并且保存下来。 保存的动作可以采用共享内存,也可以采用文件,这个在下篇博文描述,本文描述如何获取进程id和进程名称。 范例: 点击(此处)折叠或打开 #include <stdio.h> #include <unistd.h> #define CFGMNG_TASK_NAME_LEN 256 int main() { in......【阅读全文】
发布时间:2012-12-25 14:43:42
不多说,见如下文件。 点击(此处)折叠或打开 backtrace.c: #include <execinfo.h> #include <stdio.h> #include <stdlib.h> #define BT_MAX_TRACE 100 void print_trace (void) { void *array[BT_MAX_TRACE]; size_t size; &......【阅读全文】
发布时间:2012-12-25 14:39:48
linux共享库实现互斥 概述 Sqlite3数据库互斥是基于文件的,即一个数据库文件中如果包含多张表T1、T2...Tn,当有进程对其中的表Tx进行写操作时,其余试图读写Tn的操作都会立即返回IS_LOCK,导致写数据库失败。因此,Sqlite3经常用于嵌入式开发中对并发要求不高的场景。 悲剧的是现有的系统用的是Sqlite3,但却要求较高的并发度。 于是一个选择被提上议程:更换数据库 or 修改现有sqlite3的行为? 长远来看,更换数据库方为解决之道,但目前来说修改现有sqlite3的行为投入较少,先解燃眉之急。 修订方案 将sq......【阅读全文】