2017-2018-1 20155330 《信息安全系统设计基础》第六周学习总结

2017-2018-1 20155330 《信息安全系统设计基础》第六周学习总结

教材学习内容总结

  • fork()函数

    • 查看帮助文档
    • fork基本功能:通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但初始参数或者传入的变量不同,两个进程也可以做不同的事。
    • 原型:pid_t fork( void);
    • 运行fork.c文件我们可以发现,在一次调用Fork()函数后,返回了两次。这是由于子进程继承了父进程所有的打开文件。
    • 进程图
  • wait()函数&waitpid()函数

    • wait()函数的帮助文档由此可知,wait()函数是waitpid()的简单版本,wait()函数的返回情况分为两种:成功,返回子进程的pid;失败,返回-1。其中,调用wait(&status)等价于调用waitpid(-1,&status,0)
    • 运行waitprob0.c
    • 运行waitpid1.c
    • 回收僵死子进程
  • exec()函数族

    
       extern char **environ;
    
       int execl(const char *path, const char *arg, ...
                       /* (char  *) NULL */);
       int execlp(const char *file, const char *arg, ...
                       /* (char  *) NULL */);
       int execle(const char *path, const char *arg, ...
                       /*, (char *) NULL, char * const envp[] */);
       int execv(const char *path, char *const argv[]);
       int execvp(const char *file, char *const argv[]);
       int execvpe(const char *file, char *const argv[],
                       char *const envp[]);
    
  • L:参数传递为逐个列举方式:execl execle execlp

    V:参数传递为构造指针数组方式: execv execve execvp

    E:可传递新进程环境变量: execle execve

    P:可执行文件查找方式为文件名: execlp execvp

教材学习中的问题和解决过程

  • 问题1:fflush()清除缓冲区函数原理及其使用方法?
  • 问题1解决方案:函数原型
       int fflush(FILE *stream);```
    作用:为了确保不影响后面的数据读取。
    如果fflush返回EOF,数据可能由于写错误已经丢失。
    
    

代码调试中的问题和解决过程

暂无。

代码托管

结对及互评

本周结对学习情况

  • 20155321
  • 结对学习内容
    - 第8章 异常控制流
    - 第10章 系统级I/O
    - 缓冲区溢出漏洞实验

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 10/10
第二周 63/63 1/2 8/18
第三周 31/94 1/3 18/36
第四周 265/329 1/4 17/53
第五周 106/435 2/6 18/71
第六周 211/646 2/8 21/92

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:18小时

  • 实际学习时间:21小时

参考资料

原文地址:https://www.cnblogs.com/ashin-kl/p/7750718.html