摘要:
1、修改环境变量 在系统属性-高级-环境变量-用户变量中: 编辑PATH增加cl编译器的路径D:\Program Files\Microsoft Visual Studio 10.0\VC\bin, 以及MSPDB60.DLL的路径D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE,用分号分隔。新建变量INCLUDE:D:\Program Files\Microsoft Visual Studio 10.0\VC\include 新建变量LIB:D:\Program Files\Microsoft Visual Studio 10 阅读全文
摘要:
先看下面一段代码输出什么:#includeint main(){ int *p=NULL; printf("%s",p);}输出 ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0,在C语言中,NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值在不同的系统中,NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大 阅读全文
摘要:
作者: Hoyt Luo Linux从2.2开始支持PF_NETLINK域的通讯方式,这个方式主要的用途是在Linux的内核空间和用户空间进行通讯。目前在网络上面关于netlink编程的中文资料很少,为了促进对netlink编程的理解我编写了这篇文章,由于我对netlink的了解不是很透彻,特别是对于内核部分不是很熟悉,所以文章中肯定有很多错误的地方还请大家指正。文章分下面几个部分进行讲述记录netlink 基础知识nlmsghdr 结构介绍解析nlmsghdr数据sockaddr_nl 结构介绍NETLINK_ROUTE 协议介绍NETLINK_SKIP 协议介绍NETLINK_USERSO 阅读全文
摘要:
狮子让一只豹子管理10只狼,并给他们分发食物。豹子领到肉之后,把肉平均分成了11份,自己要了一份,其他给了10只狼。这10只狼都感觉自己分的少,合起伙来跟豹子唱对台戏。虽然一只狼打不过豹子,但10只狼豹子却没法应付了。 豹子灰溜溜的找狮子辞职。狮子说,看我的。 狮子把肉分成了11份,大小不一,自己先挑了最大的一份,然后傲然对其他狼说:你们自己讨论这些肉怎么分。为了争夺到大点的肉,狼群沸腾了,恶狠狠的互相攻击,全然不顾自己连平均的那点肉都没拿到。豹子钦佩的问狮子,这是什么办法?狮子微微一笑,听说过人类的绩效工资吗?...... 第二天,狮子依然把肉分成11块,自己却挑走了2块,然后傲然对其他狼. 阅读全文
摘要:
在linux/netlink.h中定义了一些方便对消息进行处理的宏,这些宏包括:#define NLMSG_ALIGNTO 4 #define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )宏NLMSG_ALIGN(len)用于得到不小于len且字节对齐的最小数值。#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(sizeof(struct nlmsghdr)))宏NLMSG_LENGTH(len)用于计算数据部分长度为len时实际的消息长度。它一般用于分配消息缓 阅读全文