(106)本章程序,是继续完善通信架构。添加了一些功能,可以读取配置文件的内容到内存中的容器。再就是添加了读取与修改命令行参数与环境变量的代码。因为这是学习,从没有学习过这些知识,接触过这样的代码,所以暂时无法总结代码。只有零散的学会了所有新的知识,并理解后,才可以总结本阶段的代码程序。
使用进程的栈空间里栈指针以上的命令行参数与环境变量参数的前提,是了解下这些数据是怎么生成到进程的线性空间里的。如以下图:
++ 根据此图分析代码的流程,是在系统内核制作进程时,完成字符串数据的生成与填充的:
++ 上图调用了 copy_strings() 函数来向进程空间传递字符串:
++ 生成这些字符串还不够,还要为这些字符串生成对应的数组 argv[] 数组与 environ[] 数组,由 create_tables() 函数完成,在最上面。
(107) 补充一下源代码里要用到的 系统函数,fopen() ,要包含头文件 <stdio.h>:
(108)另一个系统函数, feof() :
(109) 函数 ferror():
(110) clearerr() 函数:
(111) 今天开始整理源代码,精简注释,并排版后给出测试结果,随后开始给出源代码:
++ 关于修改进程名的测试结果:
另外为了支持 auto 类型推导,需要使用 c++11 及其以上的语法标准: g++ -std=c++11 才可以。
(112)
谢谢