linux中ls原始碼簡單分析

2021-07-29 09:23:34 字數 788 閱讀 3179

經過簡單分析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...