标签:
linux
checksum
md5
文件校验和
it
|
分类:
Linux
|
#include <mhash.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
MHASH td;
unsigned char buffer;
unsigned char hash[16];
td =
mhash_init(MHASH_MD5);
if (td == MHASH_FAILED)
exit(1);
while (fread(&buffer, 1,
1, stdin) == 1) {
mhash(td, &buffer, 1);
}
mhash_deinit(td, hash);
printf('Hash:');
for (i = 0; i <
mhash_get_block_s
标签:
鼎鼎大名
开发包
数据包
源代码
环境
|
分类:
Linux
|
libiptc是netfilter的一个开发包,鼎鼎大名的iptables就是在它的基础上做的开发。
以下我是在SUSE 64位环境下做的实验(Ubuntu环境下一直有问题):
源代码:
#include <stdio.h>
#include <libiptc/libiptc.h>
int main(void){
char *tab = 'filter';
struct iptc_handle *handle;
const char *chain;
handle = iptc_init(tab); //初始化table
chain = iptc_first_chain(handle); //获取该table中的第一个chain
printf('chain : %s\n', chain);
return 1;
}
编译:
gcc -liptc test.c -o test
备注:
编译时候,是需要头文件libiptc.h和动态链接库libiptc.so
在SUSE 32位环境下,在调用iptc_first_chain时会出现段错误(Segmentation
fault)。哪位大侠知道错误原因的话,还望多多指点,谢谢。
以下是我利用libiptc做的一个程序原代码:
#include <
标签:
ipmi
ipmitool
linux
ubuntu
it
|
分类:
Linux
|
本人是在Ubuntu 11.10中,利用vim来进行分析的。如对vim不是很熟悉,可以参考
http://blog.sina.com.cn/s/blog_7e4015380100tt8r.html。
为了能更方便地查看C代码,可以使用命令apt-get install ctags选择相应的版本来安装ctags。
安装好以后,在ipmitool源码的根目录下执行命令ctags -recurse=yes
*。执行成功后会在每个目录下产生tags文件。
1.ipmitool源码目录结构介绍:
lib/:
包括各个子命令实现的源代码
src/:
ipmitool.c为入口函数
src/plugins/:
2.主要结构体介绍:
include/ipmitool/ipmi_intf.h:
封装ipmitool子命令
struct ipmi_cmd{
int (*func)(struct ipmi_intf * intf, int argc, char ** argv);
//命令对应的函数实现
const char * name; //命令名称
const char * desc; //命令描述
};
封装会话信息