代码分析
只闻清风不见月
这个作者很懒,什么都没留下…
展开
-
《深入理解计算机系统》第八章--异常控制流
异常异常是异常控制流的一种,一部分由硬件实现,一部分由操作系统实现。异常(exception)就是控制流的突变,用来响应处理器状态的某些变化。状态变化又叫做事件(event)。事件可能与当前执行指令有关 :存储器缺页,算数溢出除0也可能与当前执行指令无关 :I/O请求定时器产生信号通过异常表(exception table)的跳转表,进行一个间接过程调用,到专门设计处理...原创 2019-12-09 01:46:37 · 750 阅读 · 0 评论 -
《深入理解计算机系统》第十章系统及I/O
Unix I/O所有的I/O设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作对相应文件的读和写来执行。这种将设备优雅第映射为文件的方式,允许Linux内核引出一个简单、低级的应用接口,称为Unix I/O,这使得所有的输入/输出都能以一种统一且一致的方式来执行:1.打开文件在使用文件之前需要通知内核打开该文件:int fd; // 文件描述符 file descri...转载 2019-12-08 23:57:04 · 273 阅读 · 0 评论 -
《深入理解计算机系统》第七章--链接
链接是将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可被加载到内存并执行。现代系统中,链接是由连接器自动执行的。链接使得软件开发的过程模块化,具有更高的效率。编译器驱动程序main.cint sum(int *a, int n);int array[2] = {1, 2};int main() { int val = sum(array, 2); re...原创 2019-12-08 23:36:42 · 457 阅读 · 0 评论 -
locate代码程序的运行
代码为:#include <stdlib.h>#include <stdio.h>#include <unistd.h>static void show_pointer(void *p, char *descr) { // printf("Pointer for %s at %p\n", descr, p); printf("%s...原创 2019-05-31 21:19:36 · 168 阅读 · 0 评论 -
runaway代码程序的运行与解释
代码为:/* Example of deep recursion */#include <stdio.h>#include <stdlib.h>int recurse(int x) { int a[1<<15]; /* 4 * 2^15 = 64 KiB */ printf("x = %d. a at %p\n", x, a); ...原创 2019-05-31 21:13:24 · 537 阅读 · 0 评论 -
hefixy.c代码程序的运行与解释
代码为:#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) {int i;for (i = 1; i < argc; i++) {unsigned long dig = strtoul(argv[i], NULL, 16);putchar((char) dig);}...原创 2019-05-29 00:12:36 · 145 阅读 · 0 评论 -
sq.c代码程序的运行与解释
代码为:#include <stdio.h>#include <stdlib.h>int sq(int x){return x*x;}int main(int argc, char *argv[]){int i;for(i=1;i<argc;i++){ int x = atoi(argv[i]);int sx = sq(x);printf(...原创 2019-05-28 20:35:50 · 508 阅读 · 0 评论 -
struct.c代码程序的运行与解释
代码文件为:#include <stdio.h>#include <stdlib.h>typedef struct {int a[2];double d;} struct_t;double fun(int i) {volatile struct_t s;s.d = 3.14;s.a[i] = 1073741824; /* Possibly out of ...原创 2019-05-28 20:05:54 · 265 阅读 · 0 评论 -
bufdemo代码程序的运行与解释
代码为:/* Demonstration of buffer overflow */#include <stdio.h>#include <stdlib.h>/* Implementation of library function gets() */char *gets(char *dest){ int c = getchar(); char *p ...原创 2019-05-30 13:31:21 · 136 阅读 · 0 评论 -
show_bytes代码程序的运行与解释
代码为:#include <stdio.h>/* $end show-bytes */#include <stdlib.h>#include <string.h>/* $begin show-bytes */typedef unsigned char *byte_pointer;//typedef char *byte_pointer;//ty...原创 2019-05-30 13:16:30 · 690 阅读 · 0 评论 -
fsum代码程序的运行与解释
代码为:#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 256int main(int argc, char *argv[]) { char prefix[BUFSIZE]; char next[BUFSIZE]; int i; ...原创 2019-05-30 12:40:53 · 522 阅读 · 0 评论