解決錯誤檢查問題:使用錯誤處理包裝函式
unix風格的錯誤處理
fork、wait等的早期函式的返回值既包括錯誤**也包括有用的結果
if((pid=wait(null))<0)posix風格的錯誤處理fprintf(stderr,"wait error: %s\n",strerror(errno));
exit(0);
許多較新的posix函式,只能用返回值來表明成功(0)或失敗(非0)。任何有用的結果都返回在通過引用傳遞進來的函式引數中。
if((retcode=pthread_create(&tid,null,thread,null))!=0)dns風格的錯誤處理fprintf(stderr,"pthread_create error: %s\n",
strerror(retcode));
exit(0);
gethostbyname和gethostbyname函式檢索dns(網域名稱系統)主機條目,它們有另外一種返回錯誤的方法。這些函式在失敗時返回null指標,並設定全域性變數h_errno。
if((p=gethostbyname(name))==null)unix風格的錯誤處理包裝函式fprintf(stderr,"gethostbyname error: %s\n:",
hstrerror(h_errno));
exit(0);
kill函式
void kill(pid_t pid,int signum)wait函式int tc;
if((rc=kill(pid,signum))<0)
unix_error("kill error");
pid_t wait(int *status)poisx風格的錯誤處理包裝函式pid_t pid;
if((pid=wait(status))<0)
unix_error("wait error");
return pid;
void pthread_detach(pthread_t tid)dns風格的錯誤處理包裝函式int rc;
if((rc=pthread_detach(tid))!=0)
posix_error(rc,"pthread_detach error");
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錯誤標識。功能後跟檔名作為引數,顯示檔案資訊,包括使用者,分...