加载中…
博文
标签:

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; //命令描述
};

封装会话信息
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
博文
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有