為什麼是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...