您的位置:首页 > 其它

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

2017-10-29 22:09 246 查看

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

教材学习内容总结

1、标准I/O库是基于Unix I/O实现的,并提供了强大的高级I/O例程

2、因为对标准I/O和网络文件的一些相互不兼容的限制,Unix I/O比比标准的I/O更适用于网络应用程序

3、应用程序不能直接调用Unix I/O函数,而应该使用RIO包,RIO包反复执行读写操作,自动处理不足值。

代码调试过程

一、fork函数

定义和理解:fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。

一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。

fork函数的特性
fork函数可能仅仅被调用一次,但却有可能返回两次,甚至有可能有三种不同的返回值:

1)在父进程中,fork返回新创建子进程的进程ID;

2)在子进程中,fork返回0;

3)如果出现错误,fork返回一个负值;



gdb调试fork



exec函数

1、进程控制的exec函数:当用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行。

2、因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段。

3、用fork可以创建新进程,用exec可以执行新程序。



wait函数

函数的作用:编程过程中,有时需要让一个进程等待另一个进程,最常见的是父进程等待自己的子进程,或者父进程回收自己的子进程资源包括僵尸进程,这时候可以用wait函数。

函数功能

父进程一旦调用了wait就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。



myshell



代码托管

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标2000行15篇200小时
第一周150/1501/117/17
第二周70/2201/212/29
第三周100/3201/310/39
第四周100/4201/410/59
第五周80/5002/622/81
第六周300/8002/830/111
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐