摘要: 1、vermagic.c文件中包含了大量有关内核的信息,包括目标内核版本,编译器版本以及一些重要的配置变量的设置。在试图装在模块时,这些信息可以检测模块和正在运行的内核的兼容性。 阅读全文
posted @ 2013-12-23 20:50 tony7373 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 1、cpu中的一个地址所对应的存储单元不能存很多东西,只能存一个字节,所以以前讲过的int 、float等多字节的数据类型保存在内存中要占用多个地址,这种情况下把起始地址当作这个数据的地址。2、内存的读写过程: 1 . CPU内部将寄存器对接到数据总线上,使寄存器的每一位对接到一条数据线,等待接收数据。 2 . CPU将内存地址通过地址线发给内存,然后通过另外一条控制线发一个读请求。 3 . 内存收到地址和读请求之后,将相应的存储单元对接到数据总线的另一端,这样,存储单元每一位的1 或0 状态通过一条数据线到达CPU寄存器中相应的位,就完成了数据传送。3、操作设备的过程就是对这些设备寄存... 阅读全文
posted @ 2013-12-23 11:28 tony7373 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1、如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序(也就是从左到右)依次运算,比如a.name++ ,先算a.name ,再++,这里的.name应该看成a 的一个后缀,而不是把. 看成双目运算符。2、单目运算符,包括前缀自增++、前缀自减-- 、sizeof 、类型转换() 、取地址运算& 、指针间接寻址* 、正号+ 、负号- 、按位取反~ 、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数从近到远的顺序(也就是从右到左)依次运算,比如!~a ,先算~a,再求! 。3、乘* 、除/ 、模% 运算符,加+ 、减- 运算符,移位运算符>,关系运算符 =,相等性运算符 阅读全文
posted @ 2013-12-23 08:08 tony7373 阅读(171) 评论(0) 推荐(0) 编辑
摘要: hostapd hostapd 是一个用户态用于AP和认证服务器的守护进程。它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器。Linux下支持的驱动有:Host AP,madwifi,基于mac80211的驱动。 阅读全文
posted @ 2013-12-19 14:05 tony7373 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 1、数组不能相互赋值,如:a[5]=b[5] 数组不能作为函数的返回值如:void test(int a[5]) {...}2、如果数组名放在=号的右边,那么这个数组会自动转换成数组首元素的指针。这样就可以解释上面为什么a[5]=b[5]是错误的赋值方式了,因为右边的b[5]自动转换成了指针,不能将指针赋值给数组。比较: printf(%s ,str);和scaf(%s,&str);前一个自动转换成指针进行传递,而第二个是输入的函数表达式需要使用&符号表示输入传递给一个指针类型。3、看这样的调用:int array[5] = {};foo(array); 这里的使用方法不会报错 阅读全文
posted @ 2013-12-14 17:37 tony7373 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 1、整形、字符、布尔、浮点,这些可以成为基本数据类型。他们和字符串和数组有什么区别? 字符串和数组是一种复合型数据类型,他们由基本数据类型组成,一方面可以从整体上当做一个数据来使用,另一方面也可以分别访问它的各个组成单元。 函数名是什么的抽象?是多条语句组合起来的抽象表达。 结构体是一种数据类型的组合和抽象。2、int main(void){ complex_struct{int x,y;} z; int x; } z.x和x这两个x有什冲突吗,编译器是怎么区分这两个x的?变量z的成员变量x总是用"."这个符号来访问的,他们属于不同的命名空间。结构体中的成员变量xy的存储空 阅读全文
posted @ 2013-12-14 15:26 tony7373 阅读(778) 评论(0) 推荐(0) 编辑
摘要: 1、export1、需要将上层定义的变量传递给子make时,使用“export”对此变量进行声明。 如果不希望一个上层变量传递给子make时,使用“unexport”对变量进行声明。2、如果将上层所有的变量传递给子makefile,则后面什么也不要加: export 老版本中使用: “.EXPORT_ALL_VARIABLES”将所有依赖的变量传递过来。2、变量中的上级变量和子变量遵守C语言中的全局变量和局部变量的规则。3、多级变量调用时“MAKELEVEL”表示调用的深度,在make一级一级的执行中,“MAKEELEVEL”的值不断发生变化,通过它的值我们可以了解到当前make调... 阅读全文
posted @ 2013-12-05 09:03 tony7373 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 目录1、math.h头文件编译2、main函数分析(待补充)3、局部变量,函数中定义的变量///////////////////////////////////////////////////////////////////////////////////////////////1、math.h头文件编译math.h在用gcc编译时如下:gcc main.c -lm需要在后面加-lm,因为数学函数位于libm.so库文件中(通常在/lib目录下),-lm 选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。而大部分库函数(例如printf )位于libc.so库文件中,以后称为libc 阅读全文
posted @ 2013-11-29 17:20 tony7373 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 目录1、静态模式规则2、静态模式规则和隐含模式规则3、双冒号规则4、自动产生依赖规则////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 阅读全文
posted @ 2013-11-28 09:26 tony7373 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 目录:1、Makefile的特殊规则/////////////////////////////////////////////////////////////////////////////////////(1) .PHONY.PHONY的所有依赖被称为伪目标。(伪目标:make执行后不论目标文件是否存在,这个目标所定义的规则都会被无条件执行。)(2) .SUFFIXES检查后缀规则?待补充。(3) .DEFAULT重建那些没有具体规则的目标。也就是说一个文件作为某个规则的依赖但却不是另一个规则的目标时,Make 程序无法找到重建此文件的规则,此种情况时就执行“.DEFAULT ”所指定... 阅读全文
posted @ 2013-11-28 08:04 tony7373 阅读(106) 评论(0) 推荐(0) 编辑