20145234黃斐《資訊保安系統設計基礎》第十周

2022-05-02 02:39:10 字數 1535 閱讀 2636

解決錯誤檢查問題:使用錯誤處理包裝函式

unix風格的錯誤處理

fork、wait等的早期函式的返回值既包括錯誤**也包括有用的結果

if((pid=wait(null))<0)

fprintf(stderr,"wait error: %s\n",strerror(errno));

exit(0);

posix風格的錯誤處理

許多較新的posix函式,只能用返回值來表明成功(0)或失敗(非0)。任何有用的結果都返回在通過引用傳遞進來的函式引數中。

if((retcode=pthread_create(&tid,null,thread,null))!=0)

fprintf(stderr,"pthread_create error: %s\n",

strerror(retcode));

exit(0);

dns風格的錯誤處理

gethostbyname和gethostbyname函式檢索dns(網域名稱系統)主機條目,它們有另外一種返回錯誤的方法。這些函式在失敗時返回null指標,並設定全域性變數h_errno。

if((p=gethostbyname(name))==null)

fprintf(stderr,"gethostbyname error: %s\n:",

hstrerror(h_errno));

exit(0);

unix風格的錯誤處理包裝函式

kill函式

void kill(pid_t pid,int signum)

int tc;

if((rc=kill(pid,signum))<0)

unix_error("kill error");

wait函式

pid_t wait(int *status)

pid_t pid;

if((pid=wait(status))<0)

unix_error("wait error");

return pid;

poisx風格的錯誤處理包裝函式
void pthread_detach(pthread_t tid)

int rc;

if((rc=pthread_detach(tid))!=0)

posix_error(rc,"pthread_detach error");

dns風格的錯誤處理包裝函式
struct hostent *gethostbyname(const char *name)

struct hostent *p;

if((p=gethostbyname(name))==null)

dns_error("gethostbyname error");

return p;

《資訊保安系統設計基礎》 第十周學習總結

功能 複製檔案或目錄 執行效果 功能 檢視在命令列中輸入命令時是否可見,可見返回1,否則返回0 echo is on 命令可見 echo is off 命令不可見 執行效果 功能 設定echo的狀態,用來改變輸入指令是否可見。輸入y 或是以y開頭的一串字元 命令可見 否則 即輸入不以y開頭的字元 命...

資訊保安系統設計基礎第十周學習總結

1.如何檢視當前登入的使用者?who am i 如何列出登入的使用者?who或 w 如何登出掉使用者?pkill kill t 使用者名稱或 skill kill v 使用者名稱 2.目錄操作 如何檢視當前工作目錄?pwd 如何改變當前工作目錄進入下一級目錄?cd 下一級 如何返回當前工作目錄的父目...

資訊保安系統設計基礎第十周學習報告

功能 執行後將乙個檔案的內容寫入目的檔案或者目錄下。假如目的目錄下沒有那個名字的檔案,則會新建乙個包含那些內容的檔案。顯示終端是否已經開啟,其中tcgetattr 函式用於獲取與終端 有關的引數。成功返回0 失敗返回非0,介面設定errno錯誤標識。功能後跟檔名作為引數,顯示檔案資訊,包括使用者,分...