摘要: 最近要测试一个内核模块,学习下netlink,需要安装个linuxvmware版本9.0.2,gentoo版本:install-x86-minimal-20130528,3.8.13的内核主要步骤参考这个:http://www.gentoo.org/doc/en/gentoo-x86-quickinstall.xml但没必要完全按步骤来,因为是测试用,时区什么的都省了,没分boot分区,/分区使用ext3这样在配置内核的时候,需要把ext3编进内核,而不能使用模块(查了下使用initrd也可以不编进内核)内核配置参考:http://www.gentoo.org/doc/en/handbook/ 阅读全文
posted @ 2013-07-20 21:51 D3猎人 阅读(798) 评论(0) 推荐(0) 编辑
摘要: 1. 使用getaddrinfo获取主机IP,这种方法受系统,hostname与IP的绑定配置有关,最后不要用localhost,一般localhost配置的IP为127.0.0.1 另一种方法是使用getifaddress,没用过int getIP(char *host, char *buf, int size){ assert(host != NULL && buf != NULL); struct addrinfo hints; struct addrinfo *result, *rp; int s, sfd; memset(&hints, 0, sizeof(s 阅读全文
posted @ 2013-07-16 08:27 D3猎人 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 目标是想通过LD_PRELOAD替换所有文件打开操作,让目标程序调用我写的代码linux上用C打开文件,常用的有以下几种方法:libc中的fopen、系统调用open等刚开始猜想fopen底层应该是使用open实现的,这样的话,只要拦截掉open就可以了加载时获取real_open就不写了,前面文章有int open(const char *pathname, int flags){ printf("Invoking my open\n");// 或者使用GNU扩展 RTLD_NEXT也可以 return (*real_open)(pathname, flags);}但实测 阅读全文
posted @ 2013-07-08 09:57 D3猎人 阅读(1118) 评论(0) 推荐(0) 编辑
摘要: DllMain可以在dll加载到进程、线程时调用,可以做些初始化、清理的工作但在linux上没有专门的函数,可以使用gcc扩张属性__attribute__((constructor)) and __attribute__((destructor))来实现类似于全局类变量,其构造函数及析构函数会在加载时自动调用。上述方法不能实现线程attach、detach,但对一般程序足够了void __attribute__ ((constructor)) my_load(void);void __attribute__ ((destructor)) my_unload(void);// Called w 阅读全文
posted @ 2013-07-07 09:10 D3猎人 阅读(1966) 评论(0) 推荐(0) 编辑
摘要: 安装到系统对应目录:/usr/lib /usr/local/lib,可以使用ldconfig配置,需要root权限LD_LIBRARY_PATHrpath 在g++中添加-Wl,--rpath -Wl,/a/b/c,即可传给ld阶段,如果用autoconf,libtool只会自动添加一个路径(库文件生成路径),可按上述方式添加额外路径. 该方法需要库文件在固定位置,灵活性不好RUNPATHGNU加载器,库文件搜索顺序如果没有run_path,首先看rpathLD_LIBRARY_PATH(setuid/setgid程序跳过该阶段)run_path(setuid/setgid程序跳过该阶段)/. 阅读全文
posted @ 2013-07-05 19:45 D3猎人 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 有些中小项目,常会遇到些通信问题,每次都要编写编解协议包的代码以下是几个库,对一些特定应用可以加快开发Protocol Buffers:不需要考虑传递格式,只需制定上层格式,自动转换,但需要引入pb的库。binpac:能处理二进制及字符协议,相比前者,更适用于已知协议(做网络数据分析)语法分析器 阅读全文
posted @ 2013-07-05 19:37 D3猎人 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 很简单,一条指令:source ~/.bashrc 阅读全文
posted @ 2013-07-04 15:56 D3猎人 阅读(4266) 评论(0) 推荐(0) 编辑
摘要: 这几天看了下autoconf的使用,写个教程,免得下次再用还得再看一遍文档使用autoscan扫描整个源代码目录,生成configure.scan,改名为configure.ac,这个文件可以作为configure.ac的基础使用ifnames扫描源代码,获取需要在config.h中使用的宏什么的,这个工具只扫描#if #ifdef等宏,其他需要的内容需要在congfigure.ac中单独添加修改configure.ac, 主要改以下部分添加AM_INIT_AUTOMAKE,生成makefile用如果需要生产库文件,添加AC_PROG_LIBTOOL添加必要的AC_CHECK_LIB, AC_ 阅读全文
posted @ 2013-07-03 11:18 D3猎人 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 针对以下命令:ps auxCodeMeaningD不可中断睡眠 (IO)R运行中或可运行S可中断睡眠 (waiting for an event to complete)T暂停W换页中X死掉Z僵尸进程除了以上状态,有时状态后还有些额外信息CodeMeaning<高优先级N低优先级L存在常驻内存页s会话头l多线程+在前台进程组中参考:http://thelinuxstuff.blogspot.com/2012/08/process-state-codes-in-ps-output.html 阅读全文
posted @ 2013-07-01 15:13 D3猎人 阅读(359) 评论(0) 推荐(0) 编辑
摘要: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>Oct 3 2012<<<<<<<<<<<<<<<<<<<<<<<<<<<<1.Bresenham's line algorithm(网上找的一个实现) 1 void PlotLine(int 阅读全文
posted @ 2012-10-03 15:09 D3猎人 阅读(315) 评论(0) 推荐(0) 编辑