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++了。搞了半天才想明白。
這篇文章有湊字數的嫌疑了。哈哈。
 

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