トップ 一覧 ping 検索 ヘルプ RSS ログイン

C エラーの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!C エラー

[Programming C]
*system callが失敗すると、外部変数 errno に設定する。
*errnoの値は該当する関数を呼び出した直後に調べる必要がある。
*値と意味は、error.hに記述されている。

,値,意味
,EPERM,操作は許可されない
,ENOENT,該当するfileまたはdirectoryが存在しない
,EINTR,system callが割り込まれた
,EIO,I/O error
,EBUSY,deviceまたはresourceが使用中
,EEXIST,fileが存在する
,EINVAL,引数が無効
,EMFILE,openされているfileが多すぎる
,ENODEV,該当するdeviceが存在しない
,EISDIR,directoryである
,ENOTDIR,direcotryではない

!!strerror
 #include <string.h>
 char *strerror(int errnum);
*指定されたerror番号のerrorの種類を説明する文字列を返す。

!!perror
 #include <stdio.h>
 void perror(const char *s);
*errnoが示す現在のerrorの種類を説明する文字列を標準error出力に出力する。
*文字列sがNULLでなければ、sで指定された文字列に続いて、: と空白を出力してから、error種類をあらわす文字列を出力する。 
----
 #include <string.h>
 #include <error.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 int main()
 {
   char *buf;
   buf = (char *)malloc(sizeof(char) * 256);
   for (i=0; i<256; i++) {
     buf = strerror(i);
     printf("%d : %s\n", i,buf);
   }     
   free(buf);
 }

 0 : Success
 1 : Operation not permitted
 2 : No such file or directory
 3 : No such process
 4 : Interrupted system call
 5 : Input/output error
 6 : No such device or address
 7 : Argument list too long
 8 : Exec format error
 9 : Bad file descriptor
 10 : No child processes
 11 : Resource temporarily unavailable
 12 : Cannot allocate memory
 13 : Permission denied
 14 : Bad address
 15 : Block device required
 16 : Device or resource busy
 17 : File exists
 18 : Invalid cross-device 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 ioctl for device
 26 : Text file busy
 27 : File too large
 28 : No space left on device
 29 : Illegal seek
 30 : Read-only file system
 31 : Too many links
 32 : Broken pipe
 33 : Numerical argument out of domain
 34 : Numerical result out of range
 35 : Resource deadlock avoided
 36 : File name too long
 37 : No locks available
 38 : Function not implemented
 39 : Directory not empty
 40 : Too many levels of symbolic links
 41 : Unknown error 41
 42 : No message of desired type
 43 : Identifier removed
 44 : Channel number out of range
 45 : Level 2 not synchronized
 46 : Level 3 halted
 47 : Level 3 reset
 48 : Link number out of range
 49 : Protocol driver not attached
 50 : No CSI structure available
 51 : Level 2 halted
 52 : Invalid exchange
 53 : Invalid request descriptor
 54 : Exchange full
 55 : No anode
 56 : Invalid request code
 57 : Invalid slot
 58 : Unknown error 58
 59 : Bad font file format
 60 : Device not a stream
 61 : No data available
 62 : Timer expired
 63 : Out of streams resources
 64 : Machine is not on the network
 65 : Package not installed
 66 : Object is remote
 67 : Link has been severed
 68 : Advertise error
 69 : Srmount error
 70 : Communication error on send
 71 : Protocol error
 72 : Multihop attempted
 73 : RFS specific error
 74 : Bad message
 75 : Value too large for defined data type
 76 : Name not unique on network
 77 : File descriptor in bad state
 78 : Remote address changed
 79 : Can not access a needed shared library
 80 : Accessing a corrupted shared library
 81 : .lib section in a.out corrupted
 82 : Attempting to link in too many shared libraries
 83 : Cannot exec a shared library directly
 84 : Invalid or incomplete multibyte or wide character
 85 : Interrupted system call should be restarted
 86 : Streams pipe error
 87 : Too many users
 88 : Socket operation on non-socket
 89 : Destination address required
 90 : Message too long
 91 : Protocol wrong type for socket
 92 : Protocol not available
 93 : Protocol not supported
 94 : Socket type not supported
 95 : Operation not supported
 96 : Protocol family not supported
 97 : Address family not supported by protocol
 98 : Address already in use
 99 : Cannot assign requested address
 100 : Network is down
 101 : Network is unreachable
 102 : Network dropped connection on reset
 103 : Software caused connection abort
 104 : Connection reset by peer
 105 : No buffer space available
 106 : Transport endpoint is already connected
 107 : Transport endpoint is not connected
 108 : Cannot send after transport endpoint shutdown
 109 : Too many references: cannot splice
 110 : Connection timed out
 111 : Connection refused
 112 : Host is down
 113 : No route to host
 114 : Operation already in progress
 115 : Operation now in progress
 116 : Stale NFS file handle
 117 : Structure needs cleaning
 118 : Not a XENIX named type file
 119 : No XENIX semaphores available
 120 : Is a named type file
 121 : Remote I/O error
 122 : Disk quota exceeded
 123 : No medium found
 124 : Wrong medium type
 125 : Operation canceled
 126 : Required key not available
 127 : Key has expired
 128 : Key has been revoked
 129 : Key was rejected by service
 130 : Owner died
 131 : State not recoverable

----
この本からの覚書。
{{amazon 4797327014}}