信息安全系統設計基礎第十週學習總結

1、附錄A 錯誤處理ios

1.Unix系統中的錯誤處理:數據結構

(1)Unix風格
一些函數返回值既包括錯誤代碼,也包括有用的結果。例如,當Unix風格的wait函數遇到一個錯誤,返回-1;若是wait成功完成,那麼它就返回有用的結果。app

(2)Posix風格
任何有用的結果都返回在經過引用傳遞進來的函數參數中。函數

(3)DNS風格
gethostbyname和gethostbyaddr函數檢索DNS(域名系統)主機條目,在失敗時返回NULL指針,並設置全局變量h_errno.spa

2.錯誤處理包裝函數命令行

(P695~P697函數)指針

2、第十章剩餘code

10.7 I/0重定向視頻

經過使用重定向能夠容許用戶將磁盤文件和標準輸入輸出文件聯繫起來。blog

I/O重定向如何工做?-----使用dup2函數

10.8 標準I/O

標準I/O庫將一個打開的文件模型化爲一個流。
類型爲FILE的流是對文件描述符和流緩衝區的抽象?

10.9 該使用哪些I/O函數?

對流的限制和對套接字的限制

3、練習題:

5.假設磁盤文件foobar.txt由6個ASCII碼字符「foobar」組成。那麼下列程序的輸出是什麼?

`#include "csapp.h"

int main()
{
int fd1, fd2;
char c;

fd1 = Open("foobar.txt", O_RDONLY, O);
fd2 = Open("foobar.txt", O_RDONLY, O);
Read(fd2, &c, 1);
Dup2(fd2, fd1);
Read(fd1, &c, 1);
printf("c = %c\n", c);
exit(0);
}
答案:

由於咱們將fd1重定向到了fd2,輸出其實是

c = 0.

 

運行代碼

 

cp

1.功能: 複製文件或目錄

2.將文件file1複製成文件file2(cp file1 file2)

3.fprintf

格式化輸出到一個流/文件中

頭文件 #include

5.open

打開一個文件
#include<fcntl.h>頭文件

6.write

將內存中的數據寫入文件
#include<unistd.h>頭文件 

7.create

建立/重寫一個文件
#include<fcntl.h>頭文件 

8.read

將數據讀到緩衝區
#include<unistd.h>頭文件 

9.close

關閉一個文件
#include<unistd.h>頭文件 


cp 複製(複製爲ls3文件)

 

ls

1.功能:列出目標目錄中全部的子目錄和文件。

2.示例:

1 .列出/home文件夾下的全部文件和目錄的詳細資料
lsl        命令:--R /home
2t.列出當前目錄中全部以「」開頭的目錄的詳細內容
lslt        命令:-*
3 .只列出文件下的子目錄
opt        列出 //soft文件下面的子目錄
lsoptgrep        命令:-F //soft |/$ 
        
opt        列出 //soft文件下面的子目錄詳細狀況
lsloptgrep"^d"        命令:-//soft |
4"/""*".列出目前工做目錄下全部檔案及目錄;目錄於名稱後加,可執行檔於名稱後加
ls        命令:-AF
5.計算當前目錄下的文件數和目錄數
        命令:
lslgrep"^-"l                -* ||wc ----文件個數 
lslgrep"^d"l                -* ||wc -    ---目錄個數
6.列出當前目錄下的全部文件(包括隱藏文件)的絕對路徑, 對目錄不作遞歸
find1ls        命令:$PWD -maxdepth| xargs-ld

ls 用來顯示文件的詳細信息(用戶名,羣組名,大小,建立時間,讀寫執行權。ls.tar視頻也有講到)

 

 

who

1.實現原理是,經過查找記錄登錄信息的文件來獲取系統中登錄過用戶的信息。

who 讀取想要的信息到存儲器中,再用標準輸出函數打印到屏幕上,關閉文件

 

file

1.filesize  st_size計算文件的字節數大小

 

2.fileinfo 顯示文件信息

 (1)用來實現顯示文件信息,創建了一個stat數據結構。

 (2)要先判斷命令是否有操做數

 

spwd

spwd 列出當前目錄

 

testioctl

ioctl函數

readwriteOutofreadwriteinioctl用於向設備發控制和配置命令 ,有些命令須要控制參數,這些數據是不能用/讀寫的,稱爲--band數據。
也就是說,/讀寫的數據是-band數據,是I/O操做的主體,而ioctl 命令傳送的是控制信息,其中的數據是輔助的數據。

testioctl ioctl 命令傳送的是控制信息,其中的數據是輔助的數據。

 

echostate setecho

1.setecho

設置回顯位的狀態,命令行參數爲y則開啓,不然關閉。
10.標準輸入的文件描述符爲.
2tcgetattr().使用函數和termios結構體可得到標準輸入的屬性。
3tcsetattr().使用函數和termios結構體能夠將更改後的屬性設置從新寫回標準輸入。

2.echostate

讀取驅動設置並顯示回顯位的狀態。
10.標準輸入的文件描述符爲
2tcgetattr().使用函數和termios結構體能夠讀取到設備的屬性
3.回顯位狀態放置在termios.c_lflag中

echostate setecho

 

man -k

如:經過man查看who

 

 

4、收穫:

此次的做業量比較少,可是由於開始得晚,因此又重蹈了一次覆轍,沒有一早開始寫。我但願本身能夠在之後回顧,繼續學牢固。

相關文章
相關標籤/搜索