coreutils4.5.1 dirname.c源碼分析3

老調重彈,每次先按代碼量排序,從行數少的程序開始讀,總能有所收穫。比如,在dirname.c中,我發現幾條:
第一、函數和括號可以用空格隔開,很奇怪。如
void
usage (int status)
在usage與(中有一個空格,我寫了一個測試程序,也驗證了猜想。
第二、對字符取地址,真怪異!
  static char const dot = '.';

  result = argv[1];
  len = dir_len (result);

  if (! len)
    {
      result = ˙
      len = 1;
    }

我調度過,當
./dirname  abc.c
結果是
.
./dirname  /abc.c
結果是
/
也就是如果目錄爲空,就用當前目錄代碼。但是,dot是字符變量呀,天,怎麼當成字符串來使用。
還是學得不精。
對命令行解析的那個函數,也沒弄懂,下次要搞明白。
 

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