- 博客(105)
- 资源 (12)
- 收藏
- 关注
转载 likely 和 unlikely
这两个宏对程序运行结果没有影响,只是用于提高程序效率。其实现和gcc编译器密切相关。具体点说,就是如果你觉得程序运行时候一般param = 0的可能性比较大,那么就加上likely的macro;反之则加unlikely。首先要明确: if(likely(value)) 等价于 if(value) if(unlikely(value)) 也
2012-06-11 15:58:49
685
原创 net-snmp一些接口
_snmp_build(){asn_build_sequence();asn_build_int();asn_build_string();snmp_pdu_build();} snmp_pdu_build(){snmp_build_var_op();asn_build_objid();} 6228a4804b6223c8770d319
2011-08-03 14:05:33
1162
原创 NET-SNMP的 asn 操作接口
/*移植自net-snmp的api接口*/int asn_check_packet(uchar *pkt, size_t len);uchar *asn_parse_int(uchar *data, size_t *datalength
2011-08-01 17:22:01
1239
转载 (转)用NET-SNMP软件包开发简单客户端代理
写在前面的话:对于net-snmp我也是一个初学者,开始学习时也碰到了很多低级的问题。在很多论坛上(事实上比较少^_^, 建议大家直接去sourcefoge社区看关于net-snmp的mail-list),都没有比较初级入门的文章,本着开源学习的精神,把自己的一点收获,共享给大家
2011-07-17 22:51:46
2880
转载 ISKMP Detail
IPsec Negotiation Using the IKE ProtocolIKE negotiates IPsec tunnels between two IPsec peers. This negotiation can be done using a combination of main-mode and quick-mode exchanges or a combination
2011-06-29 09:57:00
1389
转载 使用MG-SOFT的MIB_Builder 4.0编写mib文件
<br />1.点击菜单File->New...,在弹出的对话框中选择"version 1"或"version 2",此处选择"version 2"。<br />2.在Module name:编辑框中输入模块名称,注意所有字母必须大写,此处输入"LIUZY-TEST-MIB"。<br />3.导入父OID结点所在的mib模块,此处我需要创建一个位于"enterprises"下的一个私有结点39988,因此需要导入"enterprises"所在的模块SNMPv2-SMI:<br />点击菜单File->Imp
2011-02-14 15:01:00
5498
原创 VMWare虚拟机与主机共享文件夹(如何安装VMWare tools)windows与windows共...
<br />VMWare虚拟机与主机共享文件夹(如何安装VMWare tools)windows与windows共... VMWare虚拟机与主机共享文件夹(如何安装VMWare tools)windows与windows共享<br />大家安装了VMWare虚拟机后,常常要与主机交换文件。怎么才能做到又方便快捷,还比较安全呢?可能有的朋友是采用局域网共享文件夹的方式交换文件,但设置了共享后,也就意味着真实局域网的其他用户也可看到你共享的文件夹了,如何避免这一点呢?其实可以通过设置共享文件夹的方式,把主机上
2011-01-29 15:35:00
2017
转载 10个经典的字符串hash函数的C代码实现
所有内容均来自于:http://www.partow.net/programming/hashfunctions/以下总共给出了10种字符串hash函数,在上面的链接中可以找到各个Hash函数的描述,以及一些其它的关于hash函数的资料下载。这些hash函数各自的优缺点不详。其中,ELFHash函数是在unix系统中被广泛使用的,也是《算法艺术与信息学竞赛》中作者推荐的一个字符串hash函数。DEKHash函数是Knuth在其《The Art of Computer Programming》第三卷中引入的。
2010-11-29 11:34:00
656
原创 经典口误
1.在食堂排队,听见旁边一男生说.“师傅,来碗‘子弹菜花’汤!”(紫菜蛋花汤)哈哈,笑得我喷汤了。<br /><br />2.某日在米线店吃饭上得很慢很饿。终于按耐不住拍桌咆哮之,本来是想说再不上米线我就把桌子掀了!<br />结果说成:"老板!!!!再不上米线我就把桌子吃了!!!!"<br />全店沉默3秒后爆笑到桌子下面……丢人……<br /><br />3.我有次去买羊肉串伸出4个手指对老板说“来3根羊肉串”<br />老板蒙了“几根?”<br />我又伸出3个手指说“4根”……<br /><br /
2010-11-24 12:58:00
964
原创 笑话
有人摸我屁股 一日晚上, 有位二兵晚上起来上大号,可是我们部队的厕所又没灯他只有摸黑去上噜,当他正解到一半的时候, 发现有人摸他的屁股,吓得他连裤子都没穿就跑去找安全士官,大叫:" 安官! 安官! 厕所有人摸我屁股! " 安官: 有这种事情?! 你不要把事情讲出去,我会秉上处理, 先回去睡吧! "隔日,安官将这件事情跟班长讲, 班长们怕会影响部队的士气,决定下一次遇到这种
2010-11-18 13:14:00
881
原创 小故事大道理
1、一位科学家得知死神正在寻找他,便利用克隆技术复制出了12个“自己”,想在死神面前以假乱真保住性命。 面对13个一模一样的人,死神一时分辨不出哪个才是真正的目标,只好悻悻离去。 但是没过多久,对人性的弱点了如指掌的死神,想出了一个识别真假的好办法。 死神又找到那13个一模一样的科学家,对他们说:“先生,你确实是个天才,能够克隆出如此近乎完美的复制品。 但很不幸,我还是发现你的作品有一处微小的瑕疵。” 话音未落,那个真的科学家暴跳起来大声辩解道:“这不可能!我的技术是完美的!哪里有瑕疵?” “就
2010-11-11 13:02:00
770
原创 数字证书原理
数字证书原理<br />文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!<br /><br />1、基础知识<br /> 这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公钥密码体制(public-key cryptograp
2010-10-21 16:53:00
3533
19
原创 复合文档文件格式研究
<br />前 言<br /> <br />复合文档(Compound Document)是一种不仅包含文本而且包括图形、电子表格数据、声音、视频图象以及其它信息的文档。可以把复合文档想象成一个所有者,它装着文本、图形以及多媒体信息如声音和图象。目前建立复合文档的趋势是使用面向对象技术,在这里,非标准信息如图像和声音可以作为独立的、自包含式对象包含在文档中。Microsoft Windows就是使用这种技术,叫做“OLE2 storage file format”或“Microsoft Office com
2010-09-08 11:50:00
2812
1
原创 微软OFFice复合文档
劳拉"-神秘的微软办公软件文件格式<br />在复合文档中,可以有很多目录,每个目录下面可以有子目录,目录和子目录中包含了“存储”,一个存储就相当于磁盘上的一个文件,整个复合文档就形成了一个类似于磁盘上的目录和文件所组成的树状结构。如果在视窗环境下使用复合文件,可以利用操作系统提供的功能对复合文件进行读写,就像读写通常的文件和目录一样,可以在复合文件内部列目录,可以打开一个指定的目录,可以读写其中的一个“存储”(文件)。但是在DOS或者其他的环境下,操作系统没有提供现成的读写复合文件的功能,要想实现在其他操
2010-09-08 11:25:00
5032
1
转载 情海无涯,回头是岸
<br /> <br /> 最近心情特不好 ,昨晚做梦吃面条,今天早上起来发现鞋带不见了。哎,我一直在思考一个问题,你说像我这样:美貌与智慧并重,英雄与狭义的化生,改变社会风气,风靡万千少女,玉树临风胜潘安,一枝梨花压海棠。 咋个就没女生追我呢?! <br /><br /> 我咋就这么惨呢,没有人爱我,一个人的生活很孤单,
2010-08-30 12:48:00
1811
转载 失恋秘籍
“这个世界上没有什么事是放不下的,痛了,你自然就会放下。”很自以为有内涵的一句屁话! 各自的生活,各自的奋斗。谁能懂谁呢?谁又需要谁懂呢! 你可能觉得难过 因为无论你对它怎么好 它都不领情 它不是看不到 它只是装作看不到 或者它根本不想看到 你觉得自己很喜欢它 甚至觉得再没有一个人可以像你那么喜欢它 你用尽全力对它好 把它看的比自己还重要 有什么事情第一个就想到它 联系不到它的时候 你担心它担心的快疯了 然而你有没有想过 这并不在你的责任范围 而且很有可能它是
2010-08-11 09:18:00
910
原创 typedef的四个用途和两个陷阱
<br />用途一: <br />定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: <br />char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, <br />// 和一个字符变量; <br />以下则可行: <br />typedef char* PCHAR; // 一般用大写 <br />PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 <br />虽然: <br />char *pa
2010-08-07 15:17:00
415
原创 暴强自我介绍诠释
注释版: 我是个成熟男人---------------------------57岁 但是我的长相显年轻-----------------------满脸粉刺 体形魁梧,给人一种大哥的感觉--------------武松的大哥 我事业成功,是个老板----------------------冷饮摊老板 走到哪里都拎着笔记本---------------------是记录冷饮销售量的笔记本 我坐的车比林肯车还宽敞-------------------公共汽车 多年在北京大学的熏陶
2010-08-03 12:45:00
598
原创 pc link整合到source insight中,用于代码查错
原来是这样解决的,多谢各位啦:) <br /><br />一、安装。 <br /> 1。首先,将本目录下的文件全部拷贝到c:/lint之下。 <br /> 2。然后,在Source InSight 中,选择 Option-> Custom Commands... 弹 <br /> 出“Custom Commands”窗口。 <br /> 进行如下设置: <br /> 1) Command 不要填,Name填
2010-07-14 17:49:00
1905
原创 C语言中#号和##号的使用
<br />#define display(name) printf(""#name"") <br />int main() { <br /> display(name); <br />} <br />运行结果是name,为什么不是"#name"呢?<br />---------------------------------------------------------------<br /><br />#在这里是字符串化的意思<br />printf(""#name"") 相当于<br />prin
2010-05-31 16:36:00
747
原创 语言积累
1.在食堂排队,听见旁边一男生说.“师傅,来碗‘子弹菜花’汤!”(紫菜蛋花汤)哈哈,笑得我喷汤了。2.某日在米线店吃饭上得很慢很饿。终于按耐不住拍桌咆哮之,本来是想说再不上米线我就把桌子掀了!结果说成:"老板!!!!再不上米线我就把桌子吃了!!!!"全店沉默3秒后爆笑到桌子下面……丢人……3.我有次去买羊肉串伸出4个手指对老板说“来3根羊肉串”老板蒙了“几根?”我又伸出3个手指说“4根”……4.我
2010-05-19 12:55:00
853
原创 经典语言
1、你长得丑和你的脸没得关系2、最悲哀的事:睡觉睡到手抽筋,数钱数到自然醒3、用Google百度一下4、严重抗意湖南卫视在播放广告时插播娱乐节目...5、真想把我42码的鞋拍到你脸上6、早起的鸟儿有虫吃,早起的虫儿被鸟吃7、别骂自己的孩子是小兔崽子,因为从遗传学的角度来讲,这对家长是不利的8、今天是你20岁*周年纪念日。
2010-04-24 21:55:00
433
转载 结构struct 联合Union和枚举Enum的细节讨论
联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换。联合体对象在同一时间只能存储一个成员的值。联合的内存大小取决于其中字节数最多的成员,而不是累加,联合也会进行字长对齐。在定义联合变量的时候可以指定初始值,但是只能制定一个初始值(测试过似乎无法设置初值),而且该初始值的类型必须与联合的第一个成员的类型匹配。
2010-02-05 16:42:00
810
原创 offsetof(TYPE, MEMBER)和 container_of(ptr, type, member)
offsetof(TYPE, MEMBER)该宏在Linux内核代码(版本2.6.22)中定义如下:#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER); 分析:(TYPE *)0,将 0 强制转换为 TYPE 型指针,记 p = (TYPE *)0,p是指向TYPE的指针,它的值是0。那么 p->MEMBER 就
2010-01-14 23:49:00
1486
原创 vlan相关
一、pvid: 端口vlan id. 从某个端口接收到的数据包将被赋予该端口的pvid 值,然后,将该数据包转发到其目的地址(查看交换机的转发地址表)。如果接收数据包的端口的pvid 与将转发该数据包的端口的pvid 不同,那么,交换机将丢弃此数据包,不进行转发。 在交换机内,不同的pvid 意味着不同的vlan。交换机上的每个物理端口都有一个pvid,同时802.1q 端口
2010-01-14 10:56:00
3357
转载 __init and __exit
The __init and __exit declarations are special kernel macros designed to tell the kernel to flag thesefunctions for special handling in cases where they are compiled in statically rather than included
2010-01-11 20:25:00
731
原创 main函数和启动例程
2. main函数和启动例程 请点评为什么汇编程序的入口是_start,而C程序的入口是main函数呢?本节就来解释这个问题。在讲例 18.1 “最简单的汇编程序”时,我们的汇编和链接步骤是:$ as hello.s -o hello.o$ ld hello.o -o hello以前我们常用gcc main.c -o main命令编译一个程序,其实也可以分三步做,第一步生成汇编代码,第二步生成
2010-01-06 09:01:00
1618
转载 C语言常用宏定义技巧
1、防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H //头文件内容#endif2、重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char boolean; /* Boolean value type. */typedef unsigned long int
2010-01-05 15:13:00
509
原创 IP包校验和
RFC 1071中定义了Checksum的算法: (1) Adjacent octets to be checksummed are paired to form 16-bit integers, and the 1s complement sum of these 16-bit integers is formed. (2) To generate
2010-01-05 10:54:00
994
原创 非阻塞(O_NONBLOCK)
非阻塞I/O使我们的操作要么成功,要么立即返回错误,不被阻塞。 对于一个给定的描述符两种方法对其指定非阻塞I/O: (1)调用open获得描述符,并指定O_NONBLOCK标志 (2)对已经打开的文件描述符,调用fcntl,打开O_NONBLOCK文件状态标志。flags = fcntl( s, F_GETFL, 0 ) )fcntl( s, F_SETFL, flags | O_NONBLO
2009-12-15 15:05:00
20768
原创 关于recv()和send()的返回值
当发送数据量较大时,send()函数不会一次性将数据发送出去(send()实际只是把数据拷贝到缓冲区中,然后由协议来发送),而是分多次发送,所以其返回值小于想要发送的数据长度。 recv()函数会等待对方的发送缓冲中的数据被协议传送完毕,然后才返回接收到的数据长度,所以其返回值等于接收到的总的数据长度。
2009-12-15 11:46:00
1504
原创 skb_alloc()
/*allocate a network buffer, and init the skb->data and skb->tail to skb->head*/struct sk_buff *alloc_skb(unsigned int size,int gfp_mask){ struct sk_buff *skb; u8 *data; if (in_interrupt() && (gfp
2009-12-11 22:57:00
3671
原创 连接追踪表
连接追踪表它会记录修改前的源、目的 IP,以及修改后的源、目的 IP,并以 hash 结构存储当数据包过来时,无论是从外网还是内网过来,都逃不开上述两种情况,如果不属于上述两种情况,则一定不是表里的内容如果查到表,则自动取出需要转换后的数据转换后的数据进来,自动变成转换前的,发送出去转换前的数据进来,自动变成转换后的,发送出去 iptables中的状态检测功能是由state选项来实现的。
2009-12-09 21:03:00
718
转载 主动FTP和被动FTP
主动FTP主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:1. 任何端口到FTP服务器
2009-12-08 17:46:00
520
转载 [精华] 网络socket编程指南
Beej网络socket编程指南 -------------------------------------------------------------------------------- 介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet
2009-12-04 09:08:00
513
转载 Linux下c语言实现将一个目录下的所有文件和目录复制到另一个目录下
#include#include#include#include#include#include#includechar paths[1000],patht[1000],temp_paths[1000],temp_patht[1000];void Copy(char *spathname,char *tpathname){ int sfd,tfd; struct stat s,t;
2009-12-03 16:17:00
6640
转载 SSL握手过程
一、SSL握手有三个目的:1. 客户端与服务器需要就一组用于保护数据的算法达成一致;2. 它们需要确立一组由那些算法所使用的加密密钥;3. 握手还可以选择对客户端进行认证。二、SSL握手过程:1. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;2. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,
2009-12-03 09:26:00
1044
原创 openssl静态编译和动态编译
1、静态编译./Configure linux-elf-arm -DB_ENDIAN linux:armeb-linux-gcc -mbig-endian --prefix=$(pwd)/OpenSSLa、 将openssl-0.9.8d/crypto/bio/bss_file.c中以下代码注释掉//#ifndef _FILE_OFFSET_BITS//#define _FIL
2009-12-02 10:29:00
12834
原创 SNMP代理简单开发
1、 参照网上到处能下到的《net-snmp安装配置手册》编译安装net-snmp5.4.2,并参照《net-snmp安装配置手册》进行相应配置。2、 根据ASN.1语法编写MIB库BAMBOO-MIB.txt。内容如下:BAMBOO-MIB DEFINITIONS ::= BEGIN IMPORTSTimeTicks FROM SNMPv2-SMIenterpris
2009-12-02 10:22:00
2674
2
原创 如何在嵌入式LINUX内核中增加自己的设备驱动程序
驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于uClinux不支持模块动态加载,而且嵌入式LINUX不能够象桌面LINUX那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这里只介绍将设备驱动程序静态编译进uClinux内核的方法。 下面以UCLINUX为例,介绍在一个以模块方式出现的驱动程序test.c基础之上,将其编译进内核的
2009-11-19 17:44:00
1187
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人