• 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)
  • 相关阅读:
    oracle RAC 更换IP
    12C oracle 12.1.0.2版本打补丁
    node name配置错误,导致grid日志在报警
    input_subsys 输入子系统框架分析
    www.bing.com
    getopt函数使用说明
    FreeType 矢量字体 测试移植(1)
    字符的编码方式
    在开发板上显示字符和中文
    块设备驱动程序的框架
  • 原文地址:https://www.cnblogs.com/20155220wsq/p/7673753.html
Copyright © 2020-2023  润新知