
计算机系统基础
立足CSAPP,解析其中源代码,加深理解记忆。致力于学习计算机底层的知识,从底层的视角观察解析实际问题。
武松111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hexify.c详细解析
/* Convert sequence of hex digits on command line into a string, terminated by \n */#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) //主函数main,入口参数为一个整型参数argc,字符指...原创 2019-05-26 09:55:31 · 194 阅读 · 0 评论 -
locate.c详细解析
#include <stdlib.h>#include <stdio.h>#include <unistd.h>//unistd是unix std的意思,是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,如exit函数等static void show_pointer(void *p, char *desc...原创 2019-05-26 11:15:11 · 2038 阅读 · 0 评论 -
runaway.c详细解析
/* Example of deep recursion */#include <stdio.h>#include <stdlib.h>int recurse(int x)//声明并定义函数recurse,入口参数为整型变量x,返回值类型为整型//该函数为递归函数 { int a[1<<15]; /* 4 * 2^15 B *///定义一个...原创 2019-05-26 12:51:01 · 357 阅读 · 0 评论 -
fsum.c详细解析
以下为我在lofter上的博客链接http://wusong690.lofter.com/post/2046a0f9_1c5c076b6原创 2019-05-26 13:10:34 · 263 阅读 · 0 评论 -
bufdemo.c详细解析
以下为我在lofter上的博客链接http://wusong690.lofter.com/post/2046a0f9_1c5c0088d原创 2019-05-26 13:13:25 · 171 阅读 · 0 评论 -
fun.c详细解析
以下为我在lofter上的博客链接http://wusong690.lofter.com/post/2046a0f9_12e48a4f7原创 2019-05-26 13:15:32 · 375 阅读 · 0 评论 -
showbytes.c详细解析
以下为我在lofter上的博客链接http://wusong690.lofter.com/post/2046a0f9_12e489d0f原创 2019-05-26 13:17:22 · 626 阅读 · 0 评论 -
datalab详细解析
本博客参考了链接https://blog.youkuaiyun.com/qq_42792383/article/details/86824293特在此鸣谢。以下为datalab的部分解析://1/* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Legal ops: ~ & ...原创 2019-05-30 21:20:22 · 7156 阅读 · 1 评论 -
ELF可重定位目标文件详解
#(1)典型的ELF可重定位目标文件(由一个ELF头,若干节和一个节头部表组成),如下图所示摘自百度图片。#(2)实例源程序main.cint sum(int *a, int n);//声明sum函数,入口参数是一个整型指针变量a和一个整型变量n,返回值为整型int array[2] = {1, 2};//定义了一个含两个元素的整型全局数组array,并完成初始化in...原创 2019-10-04 12:03:58 · 977 阅读 · 0 评论 -
静态库链接实例详解
#简述静态库概念所有的编译系统都提供一种机制,将所有相关的目标模块打包成一个单独的文件,称为静态库(后缀名为.a)。它可以用作链接器的输入。当链接器构造一个输出的可执行文件时,它只复制静态库里被应用程序引用的目标模块。#实例源程序addvec.cint addcnt = 0;//定义全局变量addcnt,用于记录向量加调用的次数void addvec(int *x,...原创 2019-10-04 16:05:21 · 513 阅读 · 0 评论 -
共享库链接实例详解
#简述共享库概念共享库是致力于解决静态库缺陷的一个现代创新产物。共享库是一个目标模块,在运行或加载时,可以加载到任意内存地址,并和一个在内存中的程序链接起来。这个过程称为动态链接,是由一个叫作动态链接器的程序来执行的。共享库也称为共享目标,在Linux系统中通常用.so后缀来表示。在Windows系统中通常用.dll后缀来表示。#实例源程序addvec.cint addcnt =...原创 2019-10-04 16:36:34 · 594 阅读 · 0 评论 -
有关fork调用的程序解析
#例子1(有关waitpid函数)#include <sys/types.h>//定义了pid_t为int#include <sys/wait.h>//定义了waitpid函数#include <stdio.h>//定义了printf函数#include <unistd.h>//定义了fork函数#include <stdlib...原创 2019-11-06 20:05:38 · 307 阅读 · 0 评论 -
有关系统IO的程序解析
#读取文件元数据应用程序能通过调用stat和fstat函数,检索到关于文件的信息(有时也称为文件的元数据)函数声明如下#include <unistd.h>#include <sys/stat.h>int stat(const char *filename,struct stat *buf);/*第一个参数为待读取文件的文件名(加了const表示不能修改...原创 2019-12-03 11:54:51 · 199 阅读 · 0 评论 -
有关信号处理的程序解析
#用alarm函数发送信号进程可以通过调用alarm函数向它自己发送SIGALRM信号例子1:#include "csapp.h"int beeps = 0; //定义全局变量beeps并赋初值0,用于计数 /* SIGALRM handler */void handler(int sig) { //信号处理程序handler,入口参数为整型的信号编号,无返回值 s...原创 2019-12-04 22:15:53 · 583 阅读 · 0 评论