- 博客(11)
- 收藏
- 关注
原创 系统级I/O
UNIX I/O在UNIX系统中有一个说法,一切皆文件,而文件实际上可以看做是字节的序列。所有的I/O设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当做相应文件的读和写来执行,所以内核可以利用称为 Unix I/O 的简单接口来处理输入输出,比如使用 open() 和 close() 来打开和关闭文件,使用 read() 和 write() 来读写文件,或者利用 lsee...
2019-12-07 09:09:46 100
原创 一道关于fork的面试题
附上源码#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h> #include <signal.h>int main(int argc,char* argv[]){...
2019-12-04 09:59:04 308
原创 可重定位目标文件解析
程序代码如下:(最简单的hello.c)#include <stdio.h>int main(){ printf("hello, world!"); return 0;}我们首先生成可重定位目标文件gcc -c hello.c这是有关可重定位目标文件的结构图(从mooc ppt上所截)计算机系统基础(一)第十周第三讲让我们...
2019-10-31 16:40:40 608 1
原创 CSAP学习日志----数组和栈
这段代码用于检测数组元素的存储。先上代码:/* Demonstration of buffer overflow */#include <stdio.h>#include <stdlib.h>/* Implementation of library function gets() */char *gets(char *dest){ int c = getc...
2019-05-31 21:15:46 216
原创 CSAPP学习日志----栈的分配
这是一个关于深度递归的例子。先上代码:/* 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 a...
2019-05-31 20:51:56 190
原创 CSAPP学习日志----计算机中不同内存数据的存储
以下代码用于验证计算机内不同内存数据的存储方式。先上源代码:#include <stdlib.h>#include <stdio.h>#include <unistd.h>static void show_pointer(void *p, char *descr) { // printf("Pointer for %s at %p\n"...
2019-05-31 20:35:35 182
原创 CSAPP学习日志----(x+y)+z = x+(y+z)?
我在CMU的官网上看到这样一个问题:( x + y ) + z = x + ( y + z ) ?那么答案应该是怎么样的呢?是正确的吗?我们可以用这段代码来测试这个问题的答案。先上代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 256i...
2019-05-31 20:05:58 833
原创 CSAPP学习日志----数组越界
在CSAPP的学习过程中,我发现了一些有关栈的问题,这是在CMU的ppt上看到的一个关于数组越界问题的经典bug。先上源代码,(来自CMU)#include <stdio.h>#include <stdlib.h>typedef struct { int a[2]; double d;} struct_t;double fun(int i)...
2019-05-31 18:58:10 201
原创 CSAPP学习日志----x * x >= 0?
x是一个整数,那么整数的平方一定大于零吗?x * x >= 0?答案不应该是显而易见的吗?并非如此,我们来看一段代码。#include <stdio.h>#include <stdlib.h>int sq(int x) { return x*x;}int main(int argc, char *argv[]) { int i; ...
2019-05-31 16:57:46 614
原创 CSAPP学习日志----揭示数在计算机中是如何储存的
先上代码,这是一段CMU上的经典程序,清晰地揭示了数在计算机内部是如何存储的我在里面加入了注释以及不带参数的运行结果/* show-bytes - prints byte representation of data *//* $begin show-bytes */#include <stdio.h>/* $end show-bytes */#include <st...
2019-05-31 14:45:35 130
原创 Linux常用命令
文件和目录cd /home 进入 ‘/ home’ 目录’cd … 返回上一级目录cd 进入个人的主目录ls 查看当前目录下的所有目录和文件ls -a 查看当前目录下的所有目录和文件(包括隐藏的文件)编译运行c程序gedit helloworld.c 创建(打开)helloworld的文档并把代码写进去gcc -o hellowo...
2019-05-28 14:56:34 61
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人