zoukankan      html  css  js  c++  java
  • 《信息安全系统设计基础》第9周学习总结

    20145336张子扬 《信息安全系统设计基础》第9周学习总结

    学习目标

    • 掌握系统编程和系统调用的概念
    • 掌握系统编程错误处理的方式
    • 掌握Unix/Linux系统级I/O:open close read write seek stat
    • 掌握RIO
    • 掌握I/O重定向的方法

    教材学习内容总结

    • 系统级I/O:输入/输出是在主存和外部设备之间拷贝数据的过程,输入操作是从I/O设备拷贝数据到主存,输出操作是从主存拷贝数据到I/O设备。

    Unix I/O

    Unix I/O是一个简单低级的应用接口,可以把所有的输入输出当作对文件的读写来执行

    描述符:打开文件时,内核返回一个小的非负整数。 Unix外壳创建的每个进程开始时都有三个打开的文件:标准输入(描述符为0)、标准输出(描述符为1)、标准错误(描述符为2)。 改变当前的文件位置:文件位置为k,初始为0。 seek操作:显式地设置文件的当前位置为k。

    EOF:是一个条件,而不是一个符号。

    打开文件

    若成功,返回值为新文件描述符;若出错,返回值为-1

    open函数将filename转换成一个文件描述符,并且返回描述符数字。返回的描述符总是在进程中当前没有打开的最小描述符。 fd = Open("文件名",flag参数,mode参数)

    关闭文件

    若成功则返回0,不成功则为-1。

    关闭一个已经关闭的描述符程序会出错。

    读和写文件

    read函数:从描述符为fd的当前文件位置拷贝最多n个字节到存储器位置buf。返回值:-1:一个错误;0:EOF;否则,返回值:实际传送的字节数量。

    write函数:从存储器位置buf拷贝至多n个字节到描述符fd的当前文件位置。

    write函数:从存储器位置buf拷贝至多n个字节到描述符fd的当前文件位置。

    ssize和size有返回值的区别

    不足值:read和write传送的字节比应用程序要求的少。

    产生不足值的原因: 1. 读时遇到EOF 2. 从终端读文本行 3. 读和写网络套接字

    RIO包

    RIO包会自动处理不足值

    RIO包提供的两种函数:

    无缓冲的输入输出函数

    应用程序通过调用rioreadn和riowritten函数可以在存储器和文件之间直接传送数据。

    rio_ readn函数在遇到EOF时,只能返回一个不足值

    rio_ writen函数绝不会返回不足值

    带缓冲的输入函数

    rioreadinitb:每打开一个描述符都会调用一次该函数,它将描述符fd和地址rp处的类型为rio_t的缓冲区联系起来

    rioreadnb:从文件rp中最多读n个字节到存储器位置usrbuf。对同一描述符,rioreadnb和rioreadlineb的调用可以交叉进行

    ssizet readlineb:从文件rp中读取一个文本行(包括结尾的换行符),将它拷贝到存储器位置usrbuf,并用空字符来结束这个文本行

    应用程序能够通过调用stat和fstat函数,检索到关于文件的信息(元数据)

    stat函数以文件名作为输入

    st_size成员包含了文件的字节数大小

    st_mode成员编码了文件访问许可位和文件类型

    内核使用三个相关的数据结构来表示打开的文件: 1. 描述符表:每个打开的描述符表项指向文件表中的一个表项 2. 文件表:所有进程共享这张表,每个表项包括文件位置,引用计数,以及一个指向v-node表对应表项的指针 3. v-node表:所有进程共享这张表,包含stat结构中的大多数信

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

    csapp无法找到

    在http://csapp.cs.cmu.edu/public/code.html 里进行下载

    也可以用<stdio.h><fcntl.h><unistd.h>这三个头文件等效替代

    本周代码托管截图

    代码托管链接:http://git.oschina.net/Zziyang/CS10

    学习进度条

     代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
    目标 5000行 30篇 400小时  
    第二周 0/0 1/2 19/20  
    第三周 80/80 1/3 25/44  
    第四周 110/190 1/4 23/67  
    第五周 60/250 2/6 26/93  
    第六周 80/330 2/8 25/118  
    第七周 60/390 1/9 25/133  
    第八周 0/390 2/11 22/155  
    第九周 70/460 2/13 23/178  
  • 相关阅读:
    poj 2488 DFS
    畅通工程 并查集模版
    KMP 模板
    poj 1426 DFS
    poj 2528 线段数
    poj 3468 线段数 修改区间(点)
    CVPR2012文章阅读(2)A Unified Approach to Salient Object Detection via Low Rank Matrix Recovery
    如何制定目标
    Saliency Map 最新综述
    计算机视觉模式识别重要会议杂志
  • 原文地址:https://www.cnblogs.com/20145336yang/p/6060327.html
Copyright © 2011-2022 走看看