- 博客(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
2020-03-23
gawk101_01.tar.gz
2020-03-23
gawk1-01.tar.gz
2019-11-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人