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


    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/150 1/1 17/17
    第二周 70/220 1/2 12/29
    第三周 100/320 1/3 10/39
    第四周 100/420 1/4 10/59
    第五周 80/500 2/6 22/81
    第六周 300/800 2/8 30/111
  • 相关阅读:
    学习之路
    cordova配置icon和splash
    cardova-android打包
    数组元素最大差值的问题
    病毒攻击
    STL模板中List
    Direct3D API函数
    Direct3D雾化效果浅析
    Direct3D中顶点声明格式
    DirectX9.0 Direct3D Graphics Pipeline 总结
  • 原文地址:https://www.cnblogs.com/Hdywan/p/7751578.html
Copyright © 2020-2023  润新知