gnu coreutils源码 cat.c分析

107 篇文章 1 订阅
95 篇文章 1 订阅
今天开始写博客。尝试着分析源码。不写那么多废话,全写自己对源码的理解。
读了cat.c,网上找到了一个好文章:http://blog.csdn.net/mingdaotang/article/details/50446350
可惜,关键地方还是没看懂。
引用作者的一段:
字符映射
要实现这个功能,就无法再简单的整页读写数据,中间需要再加一个处理的步骤:
按整页读出数据。
逐个字符的遍历输入缓冲区(inbuf),转换字符,写到输出缓冲区(outbuf)中。
按整页写数据。
循环上述过程直到输入文件末位。
上面作者这段,我根据程序,还是弄明白了。
作者的思路是:
cat -n a.c b.c - x.c
象上面要把四个文件显示出来,因此,作者在main中,
先处理选项,
再有一个循环,循环对每个文件进行显示
      根据文件名,把文件打开
      如果没有任何先项,
          就调用simple_cat
      否则
          就调用cat
因为重点就在CAT这个子程序中,SIMPLE_CAT很简单。
在CAT中,大致是:
先从文件中读到INBUF
从INBUF中,逐字符处理,再写到OUTBUF
再将OUTBUF中内容,写到标准输出。
关键是从INBUF中写到OUTBUF这段过程,太长了,真不好啃。博客的作者的解释,还是看不懂。无法把程序串起来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值