自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 系统级IO

系统级IOcsapp.c文件中包含大量封装函数,已对-1的返回情况做了处理,以下调用的函数有的用大写表示(已处理)。见第八章。Unix I/O所有的I/O设备(如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作对相应文件的读和写执行)open,close,read,write,lseek。改变当前文件的位置。每个打开的文件内核保持一个文件位置k,初始为0.这个文件位置是从...

2019-11-23 09:42:10 179

原创 动态链接共享库

动态链接共享库静态库有一些明显的缺陷,它与所有的软件一样,需要定期维护和更新。如果应用程序员想要使用一个库的最新版本,他们必须以某种方式了解到该库的更新情况,然后显示的将他们的程序与更新了的库重新链接。其次,几乎每一个C程序都使用了标准I/O函数,运行时这些函数的代码会被复制到每个运行进程的文本段中,在运行上百个进程时将是对内存的极大浪费。而共享库(dynamic object共享目标)就能...

2019-11-21 15:34:11 604

原创 与静态库链接

与静态库链接所有的编译系统都提供一种机制,把所有的相关的目标模块打包成为一个单独的文件

2019-11-20 21:36:41 217

原创 ELF目标文件概述

ELF目标文件概述目标文件分为三种:可重定位目标文件,可执行目标文件和共享目标文件。Linux中使用ELF格式(举例的两个.c文件:)/* main.c *//* $begin main */int sum(int *a, int n);int array[2] = {1, 2};int main() { int val = sum(array, 2); ret...

2019-11-20 18:01:03 522

原创 csapp_ECF相关例题笔记

本篇博客写于csapp_ECF习题\例题笔记之后,故上篇已提到知识点不再重复,过于简单的例题不再写入

2019-11-19 10:28:42 326

原创 csapp_ECF习题/例题笔记

关于csapp第八章ECF中习题运行和结果分析这部分的代码使用的一些常量或封装函数在某些头文件定义,为简化代码示例,这里使用了csapp.h头文件(已包含所有这些需要的头文件)。这里附上在ubuntu中使用csapp.h和csapp.c的方法链接:https://www.cnblogs.com/acm1314/p/5623562.html习题8.3...

2019-11-12 21:31:42 507

原创 show-bytes

用字节展示数值存储代码部分#include <stdio.h>#include <stdlib.h>#include <string.h> //包含strlen函数,strcpy函数typedef unsigned char *byte_pointer; //用typedef将byte_pointer定义为指向unsigned char的对象的指...

2019-05-31 21:48:01 368

原创 locate.c

数据在内存的存放位置代码部分#include <stdlib.h>#include <stdio.h>#include <unistd.h> //用于linux/unix系统的调用,POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型static void show_pointer(void *p, cha...

2019-05-31 19:21:55 156

原创 runaway.c

深度递归的例子(栈溢出)代码部分#include <stdio.h>#include <stdlib.h>int recurse(int x) { int a[1<<15]; //4 * 2^15 = 64 KiB,定义一个长度为2的15次方的整型数组(太大) printf("x = %d. a at %p\n", x, a); //...

2019-05-31 16:26:17 119

原创 hexify.c

字节在小端模式下的存储代码部分#include <stdio.h>#include <stdlib.h>/*将命令行上的十六进制数字序列转换为以\n结尾的字符串*/int main(int argc, char *argv[]) { int i; for (i = 1; i < argc; i++) { unsigned long dig = ...

2019-05-31 15:13:19 135

原创 fsum.c

浮点数精度损失代码部分#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 256int main(int argc, char *argv[]) { char prefix[BUFSIZE]; char next[BUFSIZE]; ...

2019-05-31 01:49:50 281

原创 sq.c

整数相乘的溢出问题代码部分#include <stdio.h>#include <stdlib.h>int sq(int x) { return x*x;}int main(int argc, char *argv[]) { //*argv[]是个指针数组,存放输入在命令行上的命令(字符串) int i; for (i = 1; ...

2019-05-31 01:01:01 168

原创 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] ...

2019-05-31 00:12:30 105

原创 bufdemo.c

缓冲区溢出演示代码部分#include <stdio.h>#include <stdlib.h>/*库函数gets()的实现*/char *gets(char *dest){ int c = getchar(); char *p = dest; while (c != EOF && c != '\n') { //当c不等于文件结...

2019-05-30 22:49:18 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除