coreutils-4.5.1/false.c代码阅读

107 篇文章 1 订阅
95 篇文章 1 订阅

coreutils-4.5.1/false.c代码阅读
自己还是要读源码,提长自己的功力。网上购C标准库,没有了。淘宝上二手书几百元一本,估计现在学c的人也多了。
我真想读ruby0.49,可以连gcc都安装不上。没办法。还是读简单的。
把看代码看成一种生活方法,不是为了在他人前装13。
从最简单的看起
cat *.c | wc -l |sort -n -k1
先看false.c
我最近不停安装gcc,想安装老版本,怕gcc不行了,于是先在src目录下,
sudo make
下,用系统自带的工具。发现报有错误,也不管了。自己再在false.c中加几句printf,看能否有效果,再本地执行一下编译后的文件。
./false
发现有效果了。
于是就边改边读。
加一句usage(15),发现果然弹出了那个消息框,再
echo $?
返回值是15,我随便再改成
usage(1112)
返回值就不对了,左想右想在usage()中已经有exit(status)了,为什么返回值不是1112呢?后来想,可能是整数超过了。
不然为何小整数可以,大的整数就不可以了呢?

在main()中
有setlocale();
bindtextdomain();
textdomain();
这几个函数不知道定义,在包含的头文件中找,没找到。于是想起,自己以前曾经ctags过一把,于是在vim中添加一行:
tags=./tags;../lib/tags
再ctrl+]  跳到函数的定义处,发现更晕了。

反正每个命令的源码前,都有这几句,我以前,为了追求数量,一律略过了。现在回头想把它看懂,居然看不懂。也许要通过makefile找线索。想起来,又想偷懒了。

./false  --help
的实现逻辑终于看懂了,他的意思是,如果你传了两个参数,并且 
args[0]给命令名,argv[1]是--help,若STREQ(argv[1],"--help")就显示usage
哈哈,看代码也不能太急,要有一个沉稳的心态,我着相了。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值