部分知識,不足以成爲完整博文。但又不能隨意拋棄。html
1,文件名建議字符集:字母+數字+ ./-/_ 儘可能不要使用其餘符號。由於特殊符號在不少功能中已經被佔用。linux
2,系統調用一般提供最小接口(最簡易),庫函數提供相對複雜的功能。數組
3,用戶CPU時間,系統CPU時間,時鐘時間。緩存
1,用戶CPU時間:在用戶狀態下CPU的時間。網絡
2,系統CPU時間:內核狀態下的執行時間。(系統調用以及讀寫操做等)異步
3,時鐘時間:從進程開始到結束的時間。包括阻塞,等待...。ide
4,main(int argc, char *argv[ ], char **env)函數
1,大部分編譯器支持void返回值。從C++角度是不合法的。UNIX類系統中,要求上述main函數。ui
2,參數在main執行以前被賦值。spa
3,argc,用來統計運行程序送給main函數的命令行參數個數。
4,argv[],字符串數組。每一個元素指向一個參數。
1)0:程序運行的絕對路徑名。
2)1:DOS命令行中 程序名後 第一個字符串。
3)2:第二個字符串,以此類推。
4)argv[argc] == NULL
5:env[],字符串數組。每一個元素 包含 一個 ENVVAR = value 形式的字符串。
1)其中ENVVAR爲環境變量,value 爲ENVVAR的對應值。
5,page:72,題:3.4 文件描述符。閱讀完後,嘗試解決。
6,linux實現/dev/fd 是一個例外:它把文件描述符映射成指向底層物理文件的符號連接。
7,restrict關鍵字:C語言限定符。用於告訴編譯器,對象已經被指針所引用,不能經過除該指針外全部其餘直接或間接的方式修改該對象的內容。
1,總的來講,就是鎖指針。只讀不可寫。
8,在linux中,消息隊列,信號量,共享儲存對象都不表示成文件的形式。
9,只有內核才能夠寫文件。
10,目錄文件包含 其餘文件的名字 和 文件的信息指針(內容索引)。
1,刪除一個文件:須要對其 包含目錄 擁有 寫和執行 權限。對文件自己只須要執行權限(不需讀寫)。
11,索引目錄須要執行權限。
12,執行權限位:s,S。和X執行權限同位。
1,做用:說明設置位置位。當出如今用戶權限時,表示設置用戶ID功能開啓(組中,表示設置組ID功能開啓)。
2,當爲小寫s時,說明此文件可執行。大寫S表示,此文件不可執行。
3,sticky bit: 該位能夠理解爲防刪除位。若是但願用戶可以添加文件,但同時不能刪除文件。則可使用sticky bit位. 設置該位後, 就算用戶對目錄具備寫權限, 也不能刪除該文件。
1)當設置後,x執行權限位上,用T來覆蓋。與S同理,小寫可執行,大寫不可執行。
13,粘着位(S_ISVTX):早期用來肯定是否將內容緩存在交換區中。Single UNIX Specification對其進行了擴展。
1,做用,在刪除文件時,除了擁有寫權限還須要知足如下要求之一:
1)擁有此文件/目錄。
2)超級用戶root。
14,du指令:用於顯示文件的塊的數量。具體可見:man du。
15,修改時間(st_mtime) 和 狀態更改時間(st_ctim) 存在區別。
1,i節點中的狀態信息 和 文件實際內容 分開存放。
16,緩衝分爲:行緩衝 和 全緩衝。
1,當流涉及到終端時(例:標準輸入/出),一般爲行緩衝。
2,行緩衝限制:
1)行緩衝長度是固定的。可能出現:行緩衝填滿,但沒有換行符的狀況。此時,依然會進行IO操做。
2)任什麼時候候,從標準IO庫中獲得輸入數據,都會清除全部行緩衝輸出流。(此爲書中記錄。對輸入/出的概念須要進一步明確。)
3,ISO C的緩衝特徵:
1)當且僅當 標準輸入/出 並不指向交互式設備時,纔是全緩衝。
2)標準錯誤必定不是全緩衝。(通常爲無緩衝。)
4:fflush函數:int fflush( FILE *fp )
1)使該流全部未寫數據 都被傳輸到內核。當fp == null 時,則清空全部輸出流。
17,口令文件和陰影口令。
1:口令文件:包含用戶賬號信息和相關係統配置等信息。
2:陰影口令,再普通口令基礎上改良的用戶密碼保存機制。
18,經常使用的數據文件。
說明 | 數據文件 | 頭文件 | 結構 | 附加的鍵搜索函數 |
口令 |
/etc/passwd | <pwd.h> | psaawd | getpwnam, getpwuid |
組 | /etc/group | <grp.h> | group | getgrnam, getgrgid |
陰影 | /etc/shadow | <shadow.h> | spwd | getspnam |
主機 | /etc/hosts | <netdb.h> | hostent | getnameinfo, getaddrinfo |
網絡 | /etc/networks | <netdb.h> | netent | getnetbyname, getnetbyaddr |
協議 | /etc/protocols | <netdb.h> | protoent | Getprotobyname, getprotobynumber |
服務 | /etc/services | <netdb.h> | servent | getservbyname, getservbyport |
19,若是宿主機連接到TCP/IP網絡中,則此主機名一般是該主機的完整域名。
20,從10章之後的習題都未完成
21,同步,異步,阻塞,非阻塞。http://blog.sina.com.cn/s/blog_756d94a601011eww.html
22,fwide函數:設置流的定向。
1,函數原型:int fwide( FILE *fp, int mode );
23:strlen函數:計算不包含終止null字節的字符串長度。
1,sizeof函數計算包括終止null字節的緩衝區長度。
24:PAM:pluggable Authentication modules。可插入的身份驗證模塊。
25:在網絡登錄狀況下,logic僅僅是一種可用的服務,與其餘網絡服務(FTP,SMTP)的性質相同。
26:網絡登陸。
1,僞終端:軟件驅動程序。即能處理終端登錄,又能處理網絡登陸。
27:跳轉函數。
1,函數原型:
1)int setjmp( jmp_buf env ); 設置跳轉點。
2)void longjmp( jmp_buf env, int val ); 進行掉轉。參數val 將做爲回跳的返回值。
28:每一個信號都名字,以SIG開頭。
1,不存在編號爲0的信號。0有特殊的用途。
2,SIGKILL 和 SIGSTOP 不能忽略。 由於它們提供 終止/中止 的可靠方法。
29:系統調用分紅兩類:低速系統調用 和 其餘系統調用。
1,低速系統調用通常指哪些可能會使進程永遠阻塞的調用。
2,被中斷的系統調用的相關問題必須顯式的處理出錯返回。
3,部分調用擁有自動重啓功能。