coreutils-4.5.1 expr.c 源码阅读

在linux下试试五笔是否好用。感觉打字也还很快的。
很久没有上csdn了,最近没有看源码了,回顾自己,感觉还是写代码太少,应该多写,多读。想来想去,感觉还是要看coreutils的代码,因为这些代码都简单,那些操作系统,编译器的代码量太大了,就算sed,awk,ruby早版本的代码量都太大,自己功力不够,所以还是回到这些小的代码。
这几天,先学《unix编程环境》那人的做法,先把按程序行数排序的程序脚本化。
echo "list *.c | xargs wc -l | sort -n | more" > listc
再在listc中添加一行:
#!/bin/sh
然后加可执行权限
chmod +x listc
再把这个程序挪到bin下。
sudo mv listc /usr/bin/
以后,当想到按行数查时,就
./listc
这是一个技巧。以前懒得做,现在发觉还是要向牛人学习。

这几天,打造了站立式办公环境,站累了就坐,所以选了一个70Cm高的板凳放在屁股后,站累了就坐下。

把代码先浏览,今天重点分析了expr.c。这个程序也较长,后来,发现先看下用法:
./expr --help
其实,也可以把expr看成一个小型的计算机器,本来是要有语法树的,但作者省掉了。弄出
eval
eval1
eval2
eval3
eval4
等一些子程序,开始不知用途,后来才晓得其实现了操作符的优先级。连滚带pa的往下看,用一上午,基本读完。
接着又看sort.c,这个程序我想先知道他用的是什么排序方法,可看来看去,我发现我学会的是内部排序,而作者可能用到了外部排序方法,而《数据结构》中外部排序方法,没看懂。
接着看tr.c,同样,看不懂。
看tail.c,同样,看不懂。
发现还是要看1000行内的代码,量少些,基本也好看一些。
打开fmt.c,同样看不懂,首先这个命令都不会使用,先要学会使用,学会使用命令后,再有针对性的去读代码,这是较快的。
网上找代码分析,找不到coreutils相关的。我还是沉下心来读代码吧。
好在,现在可以自己在src中修改代码,修改完后
sudo make
再执行本地文件,能看到修改后的效果,真是很爽。

猜你喜欢

转载自blog.csdn.net/woshiyilitongdouzi/article/details/85073282