assert.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h>
#include <assert.h>
int divide(int num, int d);
int main(void){
printf( "%d\n", divide(100, 0) );
return 0;
}
int divide(int num, int d){
assert(d != 0);
return num / d;
}
|
assert.c の実行結果は:
[cactus:~/code_c/refer]% ./assert
Assertion failed: (d != 0), function divide, file assert.c, line 14.
Abort
errno.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /*
errno.h [errno, strerror]
*/
#include <stdio.h>
#include <errno.h>
int main(void){
FILE *fp = fopen("error.aaa", "r");
if(fp == NULL)
printf("%d\n", errno);
else
fclose(fp);
return 0;
}
|
errno.c の実行結果は:
[cactus:~/code_c/refer]% ./errno
2
perror.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | /*
stdio.h [perror]
書式: void perror(const char *s)
機能: 標準エラー出力 (画面) にエラーメッセージを表示
(エラーメッセージはエラー番号に対応した文字列)
引数: const char *s: エラーメッセージに追加表示する文字列
NULL を指定すると, エラーメッセージのみ表示する.
戻り値: なし
*/
#include <stdio.h>
int main(void){
FILE *fp1;
FILE *fp2;
char *fname1 = "unknown.txt";
char *fname2 = "test.txt";
fp1 = fopen(fname1, "r");
if(fp1 == NULL)
perror(NULL);
fp2 = fopen(fname2, "r");
if(fp2 == NULL)
return -1;
fputc('A', fp2);
perror("A を出力しようとした");
fclose(fp2);
return 0;
}
|
perror.c の実行結果は:
[cactus:~/code_c/refer]% ./perror
No such file or directory
A を出力しようとした: Bad file descriptor
strerror.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | /*
string.h [strerror]
書式: char* strerror(int errnum)
機能: エラー番号に応じた文字列の取得
引数: int errnum: エラー番号
戻り値: エラー番号に応じた文字列のポインタを返す.
*/
/*
エラー番号とエラーメッセージの対応表
00 No error
01 Operation not permitted
02 No such file or directory
03 No such process
04 Interrupted function call
05 Input/output error
06 No such device or address
07 Arg list too long
08 Exec format error
09 Bad file descriptor
10 No child processes
11 Resource temporarily unavailable
12 Not enough space
13 Permission denied
14 Bad address
15 Unknown error
16 Resource device
17 File exists
18 Improper link
19 No such device
20 Not a directory
21 Is a directory
22 Invalid argument
23 Too many open files in system
24 Too many open files
25 Inappropriate I/O control operation
26 Unknown error
27 File too large
28 No space left on device
29 Invalid seek
30 Read-only file system
31 Too many links
32 Broken pipe
33 Domain error
34 Result too large
35 Unknown error
36 Resource deadlock avoided
37 Unknown error
38 Filename too long
39 No locks available
40 Function not implemented
41 Directory not empty
42 Illegal byte sequence
43 Unknown error
44 Unknown error
45 Unknown error
46 Unknown error
47 Unknown error
48 Unknown error
49 Unknown error
*/
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main(void){
FILE *fp = fopen("error.aaa", "r");
if(fp == NULL)
printf( "%s\n", strerror(errno) );
else
fclose(fp);
return 0;
}
|
strerror.c の実行結果は:
[cactus:~/code_c/refer]% ./strerror
No such file or directory