zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155220 《信息安全系统设计基础》第四周学习总结

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

    系统调用

    read系统调用

    • read函数的原型为:
    size_t read(int fildes, void *buf, size_t nbytes);
    
    • read函数的头文件:
    #include<unistd.h>
    

    open系统调用

    • open函数的原型为:
    int open(const char *filename, int flags); 
    int open(const char *filename, int flags, mode_t mode); 
    
    • open函数的头文件有:
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    
    • read系统调用的作用是从与文件描述符相关的文件里读入nbytes个字节的数据,并把它们放到数据区buf中,返回读入的字节数,失败时返回-1。

    close系统调用

    • close调用的函数原型为:
    int close(int fildes);
    
    • close函数的头文件:
    #include <unistd.h>
    
    • close函数的作用是终于文件描述符fildes一其对应的文件之间的关联。

    myhead

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <fcntl.h>
    #include <unistd.h>
    void myhead(char *filename,int n)
    {
    
        int count=0;
        char ch;
        int fd=0;
        fd=open(filename,O_RDONLY,0);
        while(read(fd,&ch,1)!=0)
        {
            putchar(ch); 
            if(ch=='
    '){count++;}
            if(count==n){break;}
        }
    }
    

    mytail

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <fcntl.h>
    #include <unistd.h>
    void mytail(char *filename,int n)
    {
    
        int count=0,count1=0;
        char ch;
        int fd=0;
        fd=open(filename,O_RDONLY,0);
        while(read(fd,&ch,1)!=0)
        {
            if(ch=='
    '){count++;}
        }
        close(filename);
        fd=open(filename,O_RDONLY,0);
        while(read(fd,&ch,1)!=0)
        {
            if(count1>=(count-n-1)){putchar(ch);}
            if(ch=='
    '){count1++;}
        }
        close(filename);
    }
    

    学习过程遇到的问题

    • 在实现mytail过程中,出现了输出行数少一行。
    • 解决:if(count1>=(count-n)){putchar(ch)改为
      if(count1>=(count-n-1)){putchar(ch)
  • 相关阅读:
    Linux系统下公式编辑器KLatexFormula
    C++11 std::chrono库详解
    Direct Visual-Inertial Odometry with Stereo Cameras
    改变机器人的初始位姿,让机器人的初始位置不在地图的原点处
    ubuntu为文件添加可执行权限
    oracle的启动和停用
    orcale创建用户、授权
    手工配置oracle数据库
    MySQL存储过程详解 mysql 存储过程
    mysql的navicat执行存储过程
  • 原文地址:https://www.cnblogs.com/20155220wsq/p/7673753.html
Copyright © 2011-2022 走看看