UNIXC01 錯誤處理

2021-10-10 21:52:43 字數 2365 閱讀 1336

為什麼是errno

$ main 3 fopen #/return value 如果fopen呼叫失敗返回null, 並且errno的值被用來標識錯誤

....

upon successful completion fopen(

), fdopen(

) and freopen(

)return a

file pointer. otherwise, null is returned and errno is set to indicate

the error.

....

// mian 3 strerror 都可以檢視到這些資訊

#include

char

*strerror

(int errnum)

返回值:

**示例strerror的使用

file.c

#include

#include

#include

intmain

(int argc,

char

*ar**)

printf

("fopen success...\n");

fclose

(fn)

; fn=

null

;return0;

}

$ gcc file.c 

$ ./a.out a

fopen failed...2

no such file or directory

$ touch a

$ ./a.out a

fopen success...

#include

void

perror

(const

char

* s)

;

file.c

#include

intmain

(int argc,

char

*ar**)

printf

("fopen success...\n");

fclose

(fn)

; fn=

null

;return0;

}

$ rm b

$ ./a.out b

fopen: no such file or directory

$ touch b

$ ./a.out b

fopen success...

perror以後會經常用到, 不如直接把它封裝成自己的巨集, 以後使用起來會方便許多

t_stdio.h

#ifndef t_stdio_h_

#define t_stdio_h_

#include

#define e_msg(string, val) dowhile(0)

#endif

file.c

#include

"t_stdio.h"

// 如果 mv t_stdio.h /usr/include/. 那麼這句可以換成 #include

intmain

(int argc,

char

*ar**)

// printf("fopen success...\n");

// fclose(fn);

if(fn==

null

)e_msg

("fopen",-

1);// 這裡用檔案

printf

("fopen success...\n");

fclose

(fn)

; fn=

null

;return0;

}

$ gcc -c file.c 

$ a.out h

fopen: no such file or directory

$ touch h

$ a.out h

fopen: success

$ gcc -e file.c #預處理巨集以後的結果

....

dowhile(0);..

..

MySql錯誤處理 錯誤處理的例子

有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not found 執行 rollback和產生一條錯誤...

SpringBoot 01錯誤處理機制

1.常見的錯誤型別 1.1 404錯誤 是伺服器執行完客戶端的請求以後,返回給客戶端的乙個執行結果的狀態編碼。產生原因 web伺服器 容器 根據請求的位址找不到相應資源。如 1 位址錯誤 拼寫不正確,字母大小寫錯誤 2 web.xml檔案中的兩個不一致 3 工程沒有部署 4 web應用程式部署結構沒...

MySql錯誤處理(三) 錯誤處理的例子

mysql錯誤處理 三 錯誤處理的例子 有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not foun...