• 2017-2018-1 20155234 《信息安全系统设计基础》第四周课堂实践


    man命令

    这周上课老师教了我们俩个命令

    • man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用
    • grep -nr XXX /usr/include :查找宏定义,类型定义
      这俩个命令可以帮助我们查找系统内部函数的功能及其应用

    myod

    只需要讲普通myod中的*file改为fd fopen改为open fclose改为close fgets改为read就是所要求的系统调用myod了

    上课时因为上周并没有写myod并且自己的编程能力很差,所以导致在课上的时间都在编写myod没能及时完成老师的任务。

    • 伪代码
    for(行数小于输入行数;行数++)
    { if(字符不为回车)
    依次输出字符;
    }```
    通过man命令查找head的用处:
    -n x:显示文件的前x行
    -c x:显示文件的前x个字节
    -c -x:显示文件除了最后x个字节以外的内容:
    -n -x:显示文件除了最后几行的全部内容
    -v:显示文件名
    -q:隐藏文件名
    ![](http://images2017.cnblogs.com/blog/1072275/201710/1072275-20171013114444543-711716266.png)
    ![](http://images2017.cnblogs.com/blog/1072275/201710/1072275-20171013115849309-777711786.png)
    ![](http://images2017.cnblogs.com/blog/1072275/201710/1072275-20171015181425637-579571907.png)
    ##tail
    通过man命令查找tai:
    -f:循环读取
    -q:不显示文件名
    -v:显示文件名
    -c x: 显示最后x字节数
    -c +x:显示从x开始显示字节
    -n x:显示最后x行数
    -n +x:从x行开始显示文件
    -s:与-f合用每次反复的间隔休眠S秒
    - 伪代码
    ```for(当文件没读完,++)
    得到文件行数
    通过文件行数-输入的参数得到从第几行开始
    打印字符```
    ![](http://images2017.cnblogs.com/blog/1072275/201710/1072275-20171013121631027-177531902.png)
    ![](http://images2017.cnblogs.com/blog/1072275/201710/1072275-20171013121528559-1864517247.png)
    ![](http://images2017.cnblogs.com/blog/1072275/201710/1072275-20171015181524059-548722448.png)
    ##在编程中的问题
    head和tail的功能是要输出指定的前几行和后几行,我选择用回车符来判断行数。
    命令行输入的是字符型需要转化为整型才能够编译通过,我用的是a=(int)argv[1]来强制转化类型。
    ###[代码托管](https://git.oschina.net/bestiisjava2017/zxm5234)
    ##第十章主要学习系统级I/O。
     - 打开和关闭文件
        打开文件:int open(char *filename, int flags, mode_t mode)
        flags参数指明了进程打算如何访问这个文件:
        O_RDONLY:只读
        O_WRONLY:只写
        O_RDWR:可读可写
        flags参数也可以是一个或者更多位掩码的或:
        O_CREAT:如果文件不存在,就创建它的一个截断的文件
        O_TRUNC:如果文件已存在,就截断它
        O_APPEND:在每次写操作前,设置文件的位置到文件的结尾处
        关闭文件
        int close(int fd)
     - 读和写文件
    1.读 read
    函数原型:
    include <unistd.h>
    ssize_t read(int fd, void *buf, size_t n);
    2.写 write
    函数原型:
    include <unistd.h>
    ssize_t write(int fd, void *buf, size_t n);
    附录A主要讲错误处理
     - Unix系统中的错误处理:
     - 主要有Unix风格的错误处理;
     - Posix风格的错误处理;
     - GAI风格的错误处理。
  • 相关阅读:
    CentOS-6.9搭建NFS服务器
    CentOS6.9-搭建vsftpd三种模式及参数详解
    CentOS-7.3 MySQL数据库入门简介及源码编译安装MySQL服务
    CentOS7.3系统vsftpd服务简介及vsftpd的三种模式的搭建
    安装CentOS7.4 Linux操作系统
    windows server2008R2 64位 配置 mysql-8.0.15-winx64
    怎么删除服务中的mysql服务
    mysql-8.0.15-winx64 解压版安装 图文详解
    命令行下创建MySQL数据库与创建用户以及授权
    windows 2008r2+php5.6.28环境搭建详细过程
  • 原文地址:https://www.cnblogs.com/zxm20/p/7660549.html
Copyright © 2020-2023  润新知