coreutils5.0 echo.c源码分析

coreutils5.0 echo.c源码分析
随便翻翻,因为前几天学习了sort的用法,想读读sort.c的代码,一打开,完全看不懂,因为数据结构中,内部排序我懂了,但外部排序我不懂,看样子,作者好像是用到了外部排序。于是果断的略过。
然后再找代码少的来读,打开
echo.c的代码。
代码是简单的,如果没有参数就只是把参数直接打印出来。
但如果加选项,象
./echo -e "a\tbb"
是在哪里处理选项的呢?我开始没找到,后来直接搜索
\<e\>才找到,然后设计了变量do_v9=1
再在后面判断,当字串中有
\t时,变为'\t'
这段代码很绕的。
while((c=*s++)){
  if (c=='\\' && *s){
    switch(c=*s++)
    case 't':c='\t';break;
             略出若干
  }
}
当时,使用劲在想,如果c指向"a\tbb"中的'\'
那什么时候又变为t呢??然后在while语句中,s++了。搞了半天才想明白。
这篇文章有凑字数的嫌疑了。哈哈。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章