1. 程式人生 > >coreutils4.5.1 dirname.c原始碼分析3

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是字元變數呀,天,怎麼當成字串來使用。
還是學得不精。
對命令列解析的那個函式,也沒弄懂,下次要搞明白。