老調重彈,每次先按代碼量排序,從行數少的程序開始讀,總能有所收穫。比如,在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是字符變量呀,天,怎麼當成字符串來使用。
還是學得不精。
對命令行解析的那個函數,也沒弄懂,下次要搞明白。