自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 gawk awk3.c源码分析

gawk awk3.c源码分析本来昨天要完成的,昨天晚上睡得太早,就忘记了,今天打开电脑,第一件事,就是把这篇完成。这个文件主要完成一些内部函数的定义。先定义了一些外部变量,就于对应awk程序中的NF,FS,RS,NR,FILENAME,OFS,ORS,OFMT之类。inin_vars() 这个函数主要用于完成对NF,FS,RS,NR,FILENAME,OFS,ORS,OFMT变量的...

2019-12-22 08:59:54 190

原创 gawk awk1.c源码分析

gawk awk1.c源码分析今天接着读代码。前段时间迷上读网络小说,用kindle看小说,看得天昏地暗。读小说锻炼了阅读速度。星期五购买了几件打折的衣服。我要好好读代码,把购衣服的价值创造出来。言归正传。我用一台旧的笔记本不上网,只用于在上面写代码。因为上面只有gawk的源码,没有拷coreutils的源码,所以就读gawk的了。今天看的时候,感觉把这篇基本全部看懂了。个别细节也懂了。下...

2019-12-21 19:23:08 261

原创 coreutils5.0 tsort.c源码分析

coreutils5.0 tsort.c源码分析昨天很冷,没有写博客。今天太阳出来,开始写。我很喜欢看sort,comm,seq,diff,uniq之类的程序,因为其中用到一些算法,而且与内核关系不大,不象chown之类,需要调用系统调用,而我能系统调用不熟悉,因此,昨天就打开了tsort.c的源码,但读了一点就看书去了,今天接着看,感觉有点眉目了。因为我没用过tsort程序,于是百度一下...

2019-12-19 10:10:28 280 1

原创 coreutils5.0 paste.c源码分析

coreutils5.0 paste.c源码分析时间过得真快,一晃又到中餐时间了。我要赶紧再写一篇。先说paste的用法。paste -s把每个文件变成一行,再把两个文件合在一起。paste -s -d: a1 a2此时,a1中每一行末尾的\n用:来进行分隔。然后再看相应功能在程序中是如何实现的。先翻到main函数。serial_merge=0在getopt_long中,当分析...

2019-12-17 11:26:52 109

原创 coreutils5.0 unexpand.c源码分析

coreutils5.0 unexpand.c源码分析这个程序没有使用过。今天先测试一下用法。echo " bc haha " | ./unexpand | cat -t发现果然把空格转换成tab键了。而且,还有选项unexpand -a表示除文件行开头的空格转外,文件中间、末尾的空格也转为tabunexpand -t 4把连接的4个空格转为t...

2019-12-17 10:57:12 84

原创 coreutils5.0 split.c源码分析

coreutils5.0 split.c源码分析接着打开split.c,先测试一下用法。a.3的内容如下12345./split -l 3 a.3xaa123xab45看来,按行拆分好理解的。于是,我就找按行拆分的 方法。先从头到尾逛一下,翻到main时,先从getopt分析命令行参数中,找到如何分析-l发现,把行数存储到accum中,并split_type=t...

2019-12-17 10:00:44 108

原创 coreutils5.0 fold.c源码分析

coreutils5.0 fold.c源码分析先说点闲话,感觉打开电脑,能静下心来读源码,是一种幸福的生活。昨天把办公桌上的卫生整理了一下,然后在win10的笔记本上安装coreutils5.0,忽然发现编译不了。编译到seq.c时就报错误了。我心想,还是把那些能编译出来的代码读一下,我不想把时间花在调试环境上。于是就打开,发现win10下的ubuntu很不好读代码,那个注释的字体太暗了。还是...

2019-12-17 09:31:22 149

原创 coreutils5.0 factor.c源码分析

coreutils5.0 factor.c源码分析今天接着想读读代码行数少的程序,wc *.c | sort -n| more这样一选择,想读读tee.c可,发现有-a选项,因为想测试一下。a.3中有内容122echo "hello" | ./tee -a发现tee.c居然没有编译成功。原来前面seq.c就编译不成功,报floor错误,我想应该是加编译选项-lm,可我把凡是用到g...

2019-12-16 11:15:45 128

原创 coreutils5.0 echo.c源码分析

coreutils5.0 echo.c源码分析随便翻翻,因为前几天学习了sort的用法,想读读sort.c的代码,一打开,完全看不懂,因为数据结构中,内部排序我懂了,但外部排序我不懂,看样子,作者好像是用到了外部排序。于是果断的略过。然后再找代码少的来读,打开echo.c的代码。代码是简单的,如果没有参数就只是把参数直接打印出来。但如果加选项,象./echo -e "a\tbb"是在...

2019-12-16 10:27:22 211

原创 coreutils5.0 uniq.c源码分析

coreutils5.0 uniq.c源码分析运动了一会儿,让身体动起来,这样更有利于思维活跃起来。接着打开uniq.c的源码。原来,总认为代码太长,今天,先不管长度,把代码从头到尾翻一次,找出其核心的算法,一旦能从宏观上理解处理算法,至于细节,就只能慢慢看了。毕竟C语言是一种相当细的语言。先弄个测试文件a.3内容如下1223334然后进行测试./uniq a.3并加上...

2019-12-16 09:51:19 201 1

原创 coreutils5.0 comm.c源码分析

coreutils5.0 comm.c源码分析很久没有读代码了,双12为改善环境,网购了两个乐哥支架,把显示器弄得更人性化,于是又开始读源码。这次,不太急了,因为我知道源码总是读不完的,而且读完源码后,再干什么呢?好象也还是读源码,那为什么不把心思放在当下,好好的享受一下读源码的乐趣呢。而且,我原来读源码时,总是要拷一些代码出来,后来,发现意义不大,我要从宏观上理解代码,而一下拷出代码,也是...

2019-12-16 08:59:13 136

ruby_049_3.tar.gz

这个代码我改了若干处,加个头文件呀,把以前可变参数函数的调用方法修改呀,甚至64位操作系统和32位操作系统中指针值不同等等, 到现在,这个程序也跑不起来。除了 ./ruby -v 较简单,可以执行,而像 ./ruby -e 'print("ok")' 就报core dump之类错误。 这个makefile我也修改了。我想哪怕一行行gdb,我也要把这个程序调通。实在不行,直接给matz写封信,请他帮助在ubuntu下调通。 另外,为了少报些错,我把gcc进行了降级,目前我使用的是ubuntu18.04 ,gcc-4.8,至于bison,make版本就无所谓了。

2020-03-23

gawk101_01.tar.gz

这个代码较长,6000行左右。但regex.c的不用细看。关键awk相关的几个程序。我对awk.y进行了修改,使之在命令行中的程序可以执行,就是 ./gawk -f file.awk 这种格式不行,你要把awk命令直接写在命令行上,如 ./gawk '{print "okok"}' 因为那个awk.y还有移进归约冲突。我还没搞定。 总之,从awk1.c慢慢看起。

2020-03-23

grep_oz.tar.gz

写得非常漂亮的grep实现源码,

2020-03-23

gawk1-01.tar.gz

修改后能编译成功的gnu gawk1.01源码,编译成功,真是幸福呀。 今天我想把代码传上去。让大家一起来研究伟人是如何写出如此好的代码的。太厉害了。 我进行修改后,立即能看到效果。 不过,我好像又染上了环境病,只想着如何把代码编译成功,而忘记了,最关键的是要读代码了。 还是仔细读代码吧。 还说一下,我的环境是:win10下uwp下安装ubuntu,安装gcc,bison

2019-11-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除