經過簡單分析ls的原始碼,可以大致總結出ls原始碼的思路和結構如下(其他函式未仔細分析,還有防止環路的措施沒有寫出)
int main(int argc, char **argv)
}
/* read directory name, and list the files in it.
if realname is nonzero, print its name instead of name;
this is used for symbolic links to directories.
command_line_arg means this directory was mentioned on the command line. */
print_dir (char const *name, char const *realname, bool command_line_arg)}}
//對檔案表排序
sort_files ();
...//如果要遞迴輸出子目錄,將當前子目錄從檔案表刪除,加入待輸出目錄列表
if (recursive)
extract_dirs_from_files (name, command_line_arg);
...
//如果檔案項不為空,輸出當前目錄
if (cwd_n_used)
print_current_files ();
}
HashMap原始碼簡單分析
1 還是老習慣,一邊看,一邊新增注釋,希望堅持下去,hashmap的基本原始碼進行了分析,內部一些介面和設計還沒來得及看23 一 成員 45 1 transient entry table 67 hashmap內部維護了乙個內部類 entry,用來存放鍵值對,這個entry實現了map.entry這...
Linux核心等待佇列 原始碼簡單分析
一.概述 二.等待佇列 struct wait queue head typedef struct wait queue head wait queue head t 因為等待佇列可以在中斷的時候進行修改,所以操作佇列之前會給佇列加上乙個自旋鎖,task list其中是雙向佇列 struct wai...
EventBus 簡單原始碼 原理分析
1.初始化 eventbus.getdefatult 單例模式初始化。public static eventbus getdefault return instance 傳入乙個預設builder 進行初始化 public eventbus eventbus eventbusbuilder buil...