1. 程式人生 > >2018-2019-1 20165206 《資訊安全系統設計基礎》第六週學習總結

2018-2019-1 20165206 《資訊安全系統設計基礎》第六週學習總結

- 2018-2019-1 20165206 《資訊安全系統設計基礎》第六週學習總結

- 教材學習內容總結

  • 輸入操作是從I/O裝置複製資料到主存,輸出操作是從主存複製資料到I/O裝置。

- Unix I/O:

  • 所有的I/O裝置都被模型化為檔案。

  • 描述符在開啟檔案的後續對此檔案的所有操作中標識這個檔案。

  • 每個程序開始時都有開啟的三個檔案:標準輸入(描述符為0)、標準輸出(描述符為1)和標準錯誤(描述符為2)。

  • 讀操作:一個讀操作就是從檔案複製n個位元組到記憶體,從當前檔案位置k開始,然後將k增加到k+n。

  • 寫操作:一個寫操作就是從記憶體複製n個位元組到一個檔案,從當前檔案位置k開始,然後更新k。

- 文字檔案和二進位制檔案

- 開啟檔案:

int open(char *filename,int flags,mode_t mode)

  • flags引數指明瞭程序打算如何訪問這個檔案:

O_RDONLY:只讀;

O_WRONLY:只寫;

O_RDWD:可讀可寫

注意O_RDONLY|O_WRONLY和O_RDWD不相同。

  • mode引數指定了新檔案的訪問許可權位。

資料夾許可權0777表示使用者、使用者組的成員和其他人可讀可寫可執行。
7轉化為二進位制111,分別對應讀、寫、操作。

- 關閉檔案

  • int close(int fd)
    若成功則為0,若出錯則為-1.
    關閉一個已關閉的描述符會出錯。

- 讀、寫檔案

  • 應用程式是通過分別呼叫read和write函式來執行輸入和輸出的。
- ssize_t read(int fd,void *buf,size_t n);

- ssize_t write(int fd,const void *buf,size_t n);
  • size_t是無符號長整型,ssize_t是有符號長整型。

  • 核心通過三個相關的資料結構來表示開啟的檔案:描述符表、檔案表(file table)和v-node表。

  • dup2函式:
    int dup2(int oldfd,int newfd)
    dup2函式複製描述符表表項oldfd到描述符表表項newfd,覆蓋描述符表表項newfd以前的內容。

- 課上內容總結

- 幫助命令man:

  • man -k 函式名 搜尋與此函式相關的資訊

  • man -k 函式名 | grep key1| grep key2 帶有篩選的搜尋

  • man 2 函式名 可直接進入檢視函式功能、所需標頭檔案、返回值等相關資訊的檔案

  • grep -nr:grep -nr XXX /usr/include查巨集定義,查詢關鍵字,全文搜尋

  • echo命令:用於建立一個二進位制檔案。

echo -ne "\x6b" > test

\x表示為16進位制,\0NNN 表示八進位制

也可以用另外一種寫法:

echo 6b | xxd -r -ps > test
  • od命令:輸出檔案內容。檢視二進位制檔案時,用od -x將其轉成8進位制或od -h將其轉成16進位制來看

  • head和tail命令:用來顯示開頭或結尾。

顯示檔案的前5行內容

head -n 5 example.c

顯示檔案除了頭5行以外的所有內容

head -n -5 example.c

顯示檔案後5行的內容。

tail -n 5 example.c

  • who命令:

who命令用於顯示目前登入系統的使用者資訊。

c語言實現who命令的學習,我是參考部落格:Linux下who命令之C語言實現進行學習的。

通過man who檢視who了幫助文件,瞭解who命令的實現。

通過檢視utmpx,瞭解/var/run/utmp是如何儲存的

程式設計思想:
1、用open函式開啟/var/run/utmp檔案;
2、用while迴圈實現從頭到尾讀取檔案;
3、用read函式讀取並輸出實現who命令的相關資訊。

- 上週錯題總結

  • 錯題1:
    有關快取記憶體的說法正確的是()
    A .
    快取記憶體的容量可以用C=SEB 來計算
    B .
    快取記憶體容量為2048,快取記憶體結構為( 32 ,8,8,32)
    C .
    直接對映快取記憶體要:組選擇、行匹配、字抽取

D .
當程式訪問大小為2的冪的陣列時,直接對映高帶快取中常發生衝突不命中

  • 答案: A C D