01 2019 档案
摘要:1、实现代码 2、代码分析 一开始先用open_listenfd函数打开一个监听描述符,然后使用FD_ZERO创建一个空的读集合。 之后定义由描述符0和描述符3组成的读集合。 之后开始服务器循环,但是不调用accept函数等待一个连接请求,而是调用select函数,这个函数会一直阻塞,直到监听描述符
阅读全文
摘要:客户端代码还是之前的echo的代码,服务器现在更改为基于进程的支持并发的服务器代码。 1、首先服务器会运行很长时间,所以要包含一个SIGCHLD(当一个进程结束或终止时发送信号给父进程)处理程序,回收僵尸进程,这个信号处理程序必须准备回收多个僵尸子进程的资源。 2、七次父子进程必须关闭他们各自的co
阅读全文
摘要:本节目录: 1、异常 2、进程 3、系统调用错误处理 4、进程控制 5、信号 6、非本地跳转 7、操作进程工具 8、小结 本系列文章的观点和图片均来自《深入理解计算机系统第3版》仅作为学习使用 现代系统通过使控制流发生突变来应对一些情况,这些突变也就是异常控制流(ECF)。异常控制流可以发生在计算机
阅读全文
摘要:1、利用fork和execve运行程序 像Unix shell和Web服务器这样的程序使用了大量得fork和execve函数,shell是一个交互型程序,代表用户运行其他程序。shell执行一系列的读/求值步骤,然后终止,读步骤读取来自用户的一个命令行,求值步骤解析命令行,并代表用户运行程序。 主程
阅读全文
摘要:C++两种类,一种类是带指针的类,一种是不带指针的类。当写一个不带指针的类的时候,拷贝构造函数、拷贝复制函数和析构函数是可以使用默认的。当一个类带有指针之后,拷贝构造函数、拷贝复制函数和析构函数需要自己去写。 const char* cstr=0;也相当于 char const * cstr=0;
阅读全文
摘要:本节目录: 1、客户端-服务器编程模型 2、网络 3、全球IP因特网 4、套接字接口 5、Web服务器 6、总结 本系列文章的观点和图片均来自《深入理解计算机系统第 3 版》仅作为学习使用 网络应用基本都是基于相同的基本编程模型,有着相似的整体逻辑结构,并且以来相同的编程接口。网络应用依赖于前面很多
阅读全文
摘要:1、客户端 echo客户端,在和服务器连接以后,客户端应该进入一个循环,反复从标准输入读取文本行,发送文本行给服务器,从服务器读取回送的行,并输出结果到标准输出。当fgets在标准输入上遇到EOF时,或者因为用户在键盘上输入ctrl+D,或者在遇到一个重定向的输入文件中用尽了所有的文本行时,循环截止
阅读全文
摘要:1、程序 下图给出一个简单的程序,称为HOSTINFO,使用getaddrinfo和getnameinfo展示出域名到它关联的IP地址之间的映射。相当于nslookup指令。 首先初始化hints结构,使getaddrinfo返回我们想要的地址,这里我们只需要查找32位的IP地址,用作连接的端点。所
阅读全文
摘要:本章目录: 1、Unix I/O 2、文件 3、打开和关闭文件 4、读和写文件 5、用RIO包健壮的读写 6、读取文件元数据 7、读取目录内容 8、共享文件 9、IO重定向 10、标准I/O 11、具体使用情况 12、小结 本系列文章的观点和图片均来自《深入理解计算机系统第 3 版》仅作为学习使用
阅读全文
摘要:1、读取一个文件的元数据,文件可以从命令行输入,也可指直接以字符串传进。 (1)直接传字符串进去。也就是文件名。 (2)从命令行传文件进去。
阅读全文
摘要:本章目录 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、总
阅读全文
摘要:本篇目录: 1、编译器驱动程序 2、静态链接 3、目标文件 4、可重定位目标文件 5、符号和符号表 6、符号解析 7、重定位 8、可执行目标文件 9、加载可执行目标文件 10、动态链接库 11、从应用程序加载和链接共享库 12、位置无关码 13、库打桩机制 14、处理目标文件的工具 15、小结 16
阅读全文
摘要:1、建立C文件,构造共享库。 前面和静态链接一样。(https://blog.csdn.net/zl6481033/article/details/85340096)。 -fpic 选项指示编译器生成与位置无关的代码,-shared 选项指示链接器创建一个共享的目标文件。一旦创建了这个库就可以链接到
阅读全文

浙公网安备 33010602011771号