• 信息安全系统设计基础第十周学习总结


    一、who命令

    who命令的工作流程是:打开utmp文件,针对文件,读取一条记录,显示记录,关闭文件

    1.查看登录前的用户

    -who am i

    2.列出登录的用户

    -who或-w

    3.注销用户

    二、附录A

    1.系统级函数调用使用三种不同风格的返回错误:Unix风格、Posix风格、DNS风格

    a.Unix风格的错误处理

    遇到错误返回-1,函数成功完成就返回有用的结果

    b.Posix风格的错误处理

    只用返回值表明成功(0)或者失败(非0)。任何有用的结果都返回在通过引用传递进来的函数参数中。

    c.DNS风格的错误处理

    失败时返回Null指针,并且设置全局变量h_errno

    三、代码理解

    1.

    include "csapp.h"

    int main(int argc, char **argv)
    {
    int n;
    rio_t rio;
    char buf[MAXLINE];

    Rio_readinitb(&rio, STDIN_FILENO);//连接标准输入和rio地址
    while((n = Rio_readlineb(&rio, buf, MAXLINE)) != 0) //当成功返回时,将rio中的内容拷贝到存储器位置buf中,最多读maxline-1
    Rio_writen(STDOUT_FILENO, buf, n);//把存储器位置中的数据拷贝到标注输出中。
    exit(0);
    

    }
    先连接标准输入和地址rio,再根据返回值判断是否成功将rio中的一行内容拷贝到了buf中,如果是再把这一行拷贝到标准输出中,即可实现一次一行的从标准输入拷贝一个文本文件到标准输出。

    2.

    define RIO_BUFSIZE 8192

    typedef struct {
    int rio_fd; /* descriptor for this internal buf /
    int rio_cnt; /
    unread bytes in internal buf */
    char rio_bufptr; / next unread byte in internal buf /
    char rio_buf[RIO_BUFSIZE]; /
    internal buffer */
    } rio_t;

    void rio_readinitb(rio_t rp, int fd)
    {
    rp->rio_fd = fd;
    rp->rio_cnt = 0;
    rp->rio_bufptr = rp->rio_buf;
    }
    由代码可以看出,rio_t数据结构的组成部分有文件描述符,缓存区中还没有读过的数值,下一个需要读的字节,文本行。在rio_readinitb函数中,创建了一个读缓存区,把文件描述符赋值,还没有读过的数值是0,下一个要读的字节就是文本行的起始,这代表这个读缓存区是空的。#define RIO_BUFSIZE 8192
    typedef struct {
    int rio_fd; /
    descriptor for this internal buf /
    int rio_cnt; /
    unread bytes in internal buf */
    char rio_bufptr; / next unread byte in internal buf /
    char rio_buf[RIO_BUFSIZE]; /
    internal buffer */
    } rio_t;

    void rio_readinitb(rio_t *rp, int fd)
    {
    rp->rio_fd = fd;
    rp->rio_cnt = 0;
    rp->rio_bufptr = rp->rio_buf;
    }
    由代码可以看出,rio_t数据结构的组成部分有文件描述符,缓存区中还没有读过的数值,下一个需要读的字节,文本行。在rio_readinitb函数中,创建了一个读缓存区,把文件描述符赋值,还没有读过的数值是0,下一个要读的字节就是文本行的起始,这代表这个读缓存区是空的。

    四、参考资料

    1.《深入理解计算机系统》

    2.20135202博客http://www.cnblogs.com/20135202yjx/p/4947272.html

  • 相关阅读:
    String字符串性能优化的探究
    Spring笔记(5)
    Spring笔记(4)
    力扣217. 存在重复元素
    力扣1480. 一维数组的动态和
    Ribbon 和 Feign 的区别
    Eureka的自我保护机制
    Planar graph and map 3-colorability reduce to one another
    3-colorability
    一少年独坐屋中突然顿悟!-回溯
  • 原文地址:https://www.cnblogs.com/yswysw/p/4960270.html
Copyright © 2020-2023  润新知