coreutils4.5.1 感想

讀coreutils-4.5.1有感想
因爲我是用vim讀源碼,所以總感覺格式怪怪的。縮進不正確。當時只是想讀代碼,不想在非本質工作上花精力。後來,實在忍不住了,心想,這些牛人的代碼,不可能不講究縮進的,肯定是我的vim配置文件不對,上網找一個吧,可居然沒有。
看tsort.c時,忍不下去了,自己打開vim配置文件,縮進不對的地方好象在tab,目前我設置爲2,後來改爲4,還是有些不對,但比原來好些了,再改爲8,哈哈,居然漂亮了。
讀代碼,用雙顯示器,太爽了,一個打開vim進行代碼閱讀,修改;另一屏就打開命令行,不停的進行測試。爽。
今天把以前讀過的代碼,又開始重讀。感覺也有收穫。但寫出來,可能讓大家笑話了。
還是說說tsort.c排序程序吧,上面有一段
/* The topological sort is done according to Algorithm T (Topological
   sort) in Donald E. Knuth, The Art of Computer Programming, Volume
   1/Fundamental Algorithms, page 262.  */
因爲我看了半天,摸不着頭緒,原來是大神的傑作,而我懂的排序程序只限於數據結構上講的幾種,拓樸排序,沒聽說。
其中定義的數據結構更怪:


/* Members of the list of successors.  */
struct successor
{
  struct item *suc;
  struct successor *next;
};

/* Each string is held in core as the head of a list of successors.  */
struct item
{
  const char *str;
  struct item *left, *right;
  int balance;
  int count;
  struct item *qlink;
  struct successor *top;
};
這個數據結構沒看懂。越看代碼,心裏越來越慌了。
凡是文件相關的源程序,因爲我對文件類系統調用不熟悉,所以略過。現在看來,還要讀高納德的書翻一下。高納德的程序是用mix彙編寫的,我只能看懂C ,對彙編語言真看不懂。
如果有人能講高納德的書用C  語言描述算法就好了。

網上看來也沒有人看coreutils源碼了。網上找不到資料,而能看懂的估計又覺得這代碼太小兒科了,看來只能自己慢慢啃了。

因爲我是在linux下編輯的,要拷內容,就打開了gvim,linux下的五筆也很好用。哈哈。

 

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