linux 内核编程
摘要: LINUX中信号函数定义的比较复杂,原来总结的,现在修改一下贴出来。void (*signal (int signo, void (*func)(int))) (int);可 以改写成void (*XXXX) (int);XXXX为一个函数指针,那么这个函数指针是从哪儿来的呢。他是通过*signal (int signo, void (*func)(int))这个函数返回的,在C语言中void *func()返回一个void指针,{注意:void(*func)()由于括号优先级高,所以FUNC是指向的一个函数的指针,而且认为这里的这个*应该不是原先理解的意思,应该只是指明这是外面函数的一个函数阅读全文
摘要: 一个指向10个整型数数组的指针 int (*a)[10]一个指向函数的指针,该函数有一个整型参数并返回返回整型数 int (*a)(int)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数 int (*a[10])(int)阅读全文
摘要: 中断门与陷阱门在使用上的区别 并不在于中断是由外部产生的或是由cpu本身产生的,而是在于通过中断门进入中断服务程序时cpu会自动将中断关闭,也就是将cpu中eflags寄存器中IF标志复位,防止嵌套中断的发生;而通过陷阱门进入服务程序时则维持IF标志不变。 这是中断门与陷阱门的唯一区别阅读全文
摘要: 中断源cpu外部硬件产生的cpu本身执行程序的过程中产生的外部中断就是通常所说的中断,对于执行中的软件来说,这种中断的发生完全是异步的,cpu对外部中断的响应完全是被动的。不过软件可以通过“关中断”指令关闭对中断的响应。(不考虑不可屏蔽中断)软件产生的中断是由专门的指令在程序中有意产生的,所以是主动的,同步的,这又被称为“陷阱”。X86对中断的硬件支持切换cpu的运行状态 中断、异常 通过子程序调用指令CALL和转移JMP来达到目的按不同的用途和 目的,cpu中一共有四种门任务门中断门陷阱门调用门其中除任务门外其它三种门的结构基本相同,但调用门并不是与中断向量表联系的阅读全文

