摘要: 1、客户端 echo客户端,在和服务器连接以后,客户端应该进入一个循环,反复从标准输入读取文本行,发送文本行给服务器,从服务器读取回送的行,并输出结果到标准输出。当fgets在标准输入上遇到EOF时,或者因为用户在键盘上输入ctrl+D,或者在遇到一个重定向的输入文件中用尽了所有的文本行时,循环截止 阅读全文
posted @ 2019-01-11 17:39 吾之求索 阅读(1001) 评论(0) 推荐(0)
摘要: 1、程序 下图给出一个简单的程序,称为HOSTINFO,使用getaddrinfo和getnameinfo展示出域名到它关联的IP地址之间的映射。相当于nslookup指令。 首先初始化hints结构,使getaddrinfo返回我们想要的地址,这里我们只需要查找32位的IP地址,用作连接的端点。所 阅读全文
posted @ 2019-01-10 10:52 吾之求索 阅读(388) 评论(0) 推荐(0)
摘要: 本章目录: 1、Unix I/O 2、文件 3、打开和关闭文件 4、读和写文件 5、用RIO包健壮的读写 6、读取文件元数据 7、读取目录内容 8、共享文件 9、IO重定向 10、标准I/O 11、具体使用情况 12、小结 本系列文章的观点和图片均来自《深入理解计算机系统第 3 版》仅作为学习使用 阅读全文
posted @ 2019-01-07 18:03 吾之求索 阅读(318) 评论(0) 推荐(0)
摘要: 1、读取一个文件的元数据,文件可以从命令行输入,也可指直接以字符串传进。 (1)直接传字符串进去。也就是文件名。 (2)从命令行传文件进去。 阅读全文
posted @ 2019-01-07 17:03 吾之求索 阅读(248) 评论(0) 推荐(0)
摘要: 本章目录 1、引言 2、文件描述符 3、open函数 4、creat函数 5、close函数 6、lseek函数 7、read函数 8、write函数 9、IO效率 10、文件共享 11、原子操作 12、dup和dup2函数 13、fcntl函数 14、ioctl函数 15、/dev/fd 16、总 阅读全文
posted @ 2019-01-04 17:40 吾之求索 阅读(212) 评论(0) 推荐(0)
摘要: 本篇目录: 1、编译器驱动程序 2、静态链接 3、目标文件 4、可重定位目标文件 5、符号和符号表 6、符号解析 7、重定位 8、可执行目标文件 9、加载可执行目标文件 10、动态链接库 11、从应用程序加载和链接共享库 12、位置无关码 13、库打桩机制 14、处理目标文件的工具 15、小结 16 阅读全文
posted @ 2019-01-03 17:07 吾之求索 阅读(592) 评论(0) 推荐(0)
摘要: 1、建立C文件,构造共享库。 前面和静态链接一样。(https://blog.csdn.net/zl6481033/article/details/85340096)。 -fpic 选项指示编译器生成与位置无关的代码,-shared 选项指示链接器创建一个共享的目标文件。一旦创建了这个库就可以链接到 阅读全文
posted @ 2019-01-03 15:55 吾之求索 阅读(167) 评论(0) 推荐(0)
摘要: 1、创建两个C文件。 2、并通过gcc -c addvec.c multvec.c生成可重定位文件。可以看到生成了两个.o文件。 3、创建函数的静态库需要使用AR工具。 创建一个.h文件,声明这两个函数。 格式:ar rcs libxxx.a xx1.o xx2.o 参数 r:在库中插入模块 (替换 阅读全文
posted @ 2018-12-29 16:20 吾之求索 阅读(141) 评论(0) 推荐(0)
摘要: ELF(Executable and Linking Format)是一个定义了目标文件内部信息如何组成和组织的文件格式。内核会根据这些信息加载可执行文件,内核根据这些信息可以知道从文件哪里获取代码,从哪里获取初始化数据,在哪里应该加载共享库,等信息。 ELF文件主要三种文件类型,具体参考(http 阅读全文
posted @ 2018-12-28 10:29 吾之求索 阅读(419) 评论(0) 推荐(0)
摘要: 1、认识BASH这个Shell 管理整个计算机硬件的其实是操作系统的核心,这个核心是被保护的,我们只能通过Shell来和其沟通。 1.1 硬件、核心与Shell 用户通过Shell将我们输入的指令与kernel沟通,之后让kernel可以控制硬件来正确无误的工作。操作系统其实是一组软件,这组软件控制 阅读全文
posted @ 2018-12-26 19:46 吾之求索 阅读(374) 评论(0) 推荐(0)