linuix cat指令

前言

前讲了 fputc 并不是 行缓存 用了while1);和加入换行验证 
fputc和 fgetc 配置使用 注意光标要重新偏移到第0个位置 
这节讲讲cat 指令原理 

cat 指令介绍

cat 实现的过程 

在这里插入图片描述
拿a.C 比喻

用户先从内核读取 用户在写入内核 通过内核的驱动程序 输出到显示屏 

getc/fputc函数配合 实现 cat 指令

用 man 形参 实现就行了 
前面学了 1 gets/puts 2 fgets/fputs 3 fgetc/fputc 三组 读写函数
 1 是不行的 因为只能单纯 输出 输入 
int argc:表示命令行的参数个数 
char *argv[]:实际在输入命令行时由系统实际参数 一共三个
现在cat 算一个 不用写进代码 argv[0]
因为 第一个是固定指令 后两个才是源文件名字 或者参数 

在这里插入图片描述

#include<stdio.h>

int  main(int argc,char *argv[])
{
     FILE *fd;
     int str;
     if(argc!=2)//如果不是两个参数  就是异常  cat xxx.C 就是两个参数 
     {
         printf("fopen is error\n");
         return -1;
     }
     printf("fopen is success\n");
     fd=fopen(argv[1],"r");
    
     while(1) //因为读写不止一次 所以循环就行了 
     {
         Nret=fgetc(fd);

         if(feof(Nret))//读到文件结尾就退出
        {
            break;
        }
         fputc(Nret,stdout);//输出到显示屏 
     }
     flcose(fd);

      return 0;

}

查看 本源文件 

在这里插入图片描述

查看 其他文件 

在这里插入图片描述

两个文件都可查看  证明成功了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值