zoukankan      html  css  js  c++  java
  • 实现linux cat命令功能

    一、需要用到的函数

      fopen()、fgetc()、fputc()、feof()

       一个字符的读写函数:

        int fgetc(FILE *fp)

          功能:从文件中读取一个字符

          参数:文件流

          返回值:正确为读取的字符,到文件结尾或出错时返回EOF

        int fpuc(int c, FILE *fp)

          功能:写一个字符到文件中

          参数:第一个字符为要写的字符,第二个参数为文件流

          返回值:成功则返回输入的字符,出错返回EOF

        是否是行缓存函数?

           fputc有缓存,但不是行缓存函数。

        int feof(FILE *stream)

          功能:判断是否已经到了文件结束

          参数:文件流

          返回值:到文件结束,返回为非0,没有则返回0

    二、示例代码

    /*
           功能:将文件内容输出到显示器
    */
    #include <stdio.h>
    int main(int argc, char *argv[])
    {
        FILE *fp = fopen(argv[1], "r");//打开文件
        int read_ret;
        if(argc < 2)
        {
             printf("please input src file!
    ");
        }
        if(fp == NULL)
        {
            printf("open src %s failed!
    ", argv[1]);
            return -1;
        }
    
        while(1)
        {
               read_ret = fgetc(fp);//读取文件
               if(feof(fp))//判断是否读取完毕
              {
                      printf("read file %s endl
    ",argv[1]);
                      break;
              }
              fputc(read_ret,stdout);//将数据输出到屏幕
        }
     
                            

     三、结果展示

      

    四、使用我们自己实现的mycat命令

      ①将编译好的mycat拷贝到bin目录下,这样我们即可以使用我们自己编写的mycat命令查看文件,也可以使用

       系统中cat命令查看文件

      执行命令:cp mycat /bin

      若权限不够则可使用拷贝:sudo cp mycat /bin      

  • 相关阅读:
    红黑树
    二叉搜索树
    散列表
    快速排序
    堆排序
    归并排序
    插入排序
    Shell脚本之:函数
    Shell脚本之:退出循环
    ACM刷题之路(四)2018暑假实验室集训——深广搜专题题解
  • 原文地址:https://www.cnblogs.com/jiangson/p/6069646.html
Copyright © 2011-2022 走看看