11 2015 档案
摘要:先说明两个概念:中断和系统调用 一 系统调用: 是应用程序(运行库也是应用程序的一部分)与操作系统内核之间的接口,它决定了应用程序是如何和内核打交道的。 1, Linux系统调用:2.6.19版内核提供了319个系统调用。比如 exit fork read open close …… 2, 对Win
阅读全文
摘要:在看《程序员的自我修养》时看到一个以前没见过的东西,为此记录下来。(当然事后才知道原来早就被人写烂了,啊哈哈哈) 非局部跳转在C语言中是一个备受争议的机制。使用非局部跳转,可以实现从一个函数体内向另一个事先登记过的函数体内跳转,不必担心堆栈混乱。请看实例:// setjmp.c// 非局部跳转...
阅读全文
摘要:关于new和delete,有如下代码// new_test.cpp#includeusing namespace std;class A{public: A() { cout data = " data data = " data data = " data data = ...
阅读全文
摘要:1,编译器编译源代码生成的文件叫做目标文件。从结构上说,是编译后的可执行文件,只不过还没有经过链接3.1目标文件的格式1,可执行文件的格式:Windows下的PE和Linux下的ELF2,从广义上说,目标文件与可执行文件的格式几乎是一样的,所以广义上可以将目标文件与可执行文件看成是一种类型的文件。3...
阅读全文
摘要:第二章编译和链接2.1被隐藏了的过程我们知道,一个程序由源代码到可执行文件往往由这几步构成:预处理(Prepressing)->编译(Compilation)->汇编(Assembly)->链接(Linking)。如图所示,2.1.1预编译#includeint main(void){ print...
阅读全文