errno函数与perroe函数与strerror函数

本文介绍了C/C++中用于处理系统错误的三个重要函数:errno, perror与strerror的功能及用法。errno用于记录最后一次系统调用的错误代码;perror则用于打印系统错误信息;strerror能将错误码转换为易于理解的字符串信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

errno()

 功能:记录系统的最后一次错误代码,代码是一个int型的值,在errno.h中定义
  头文件:#include<errno.h>

查看系统中所有的errno所代表的含义,可采用如下定义:

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>//errno()的头文件
#include<string.h>//strerror()函数的头文件
int main()
{
  int tmp=0;
  for(tmp=0;tmp<=256;tmp++)
  {
    printf("errno:%2d\t%s\n",tmp,strerror(tmp));
  }
  return 0;
}

运行结果:

errno: 0    Success
errno: 1    Operation not permitted
errno: 2    No such file or directory
errno: 3    No such process
errno: 4    Interrupted system call
errno: 5    Input/output error
errno: 6    No such device or address
errno: 7    Argument list too long
errno: 8    Exec format error
errno: 9    Bad file descriptor
errno:10    No child processes
errno:11    Resource temporarily unavailable
errno:12    Cannot allocate memory
errno:13    Permission denied
errno:14    Bad address
errno:15    Block device required
errno:16    Device or resource busy
errno:17    File exists
errno:18    Invalid cross-device link
errno:19    No such device
errno:20    Not a directory
errno:21    Is a directory
errno:22    Invalid argument
errno:23    Too many open files in system
errno:24    Too many open files
errno:25    Inappropriate ioctl for device
errno:26    Text file busy
errno:27    File too large
errno:28    No space left on device
errno:29    Illegal seek
errno:30    Read-only file system
errno:31    Too many links
errno:32    Broken pipe
errno:33    Numerical argument out of domain
errno:34    Numerical result out of range
errno:35    Resource deadlock avoided
errno:36    File name too long
errno:37    No locks available
errno:38    Function not implemented
errno:39    Directory not empty
errno:40    Too many levels of symbolic links
errno:41    Unknown error 41
errno:42    No message of desired type
errno:43    Identifier removed
errno:44    Channel number out of range
errno:45    Level 2 not synchronized
errno:46    Level 3 halted
errno:47    Level 3 reset
errno:48    Link number out of range
errno:49    Protocol driver not attached
errno:50    No CSI structure available
errno:51    Level 2 halted
errno:52    Invalid exchange
errno:53    Invalid request descriptor
errno:54    Exchange full
errno:55    No anode
errno:56    Invalid request code
errno:57    Invalid slot
errno:58    Unknown error 58
errno:59    Bad font file format
errno:60    Device not a stream
errno:61    No data available
errno:62    Timer expired
errno:63    Out of streams resources
errno:64    Machine is not on the network
errno:65    Package not installed
errno:66    Object is remote
errno:67    Link has been severed
errno:68    Advertise error
errno:69    Srmount error
errno:70    Communication error on send
errno:71    Protocol error
errno:72    Multihop attempted
errno:73    RFS specific error
errno:74    Bad message
errno:75    Value too large for defined data type
errno:76    Name not unique on network
errno:77    File descriptor in bad state
errno:78    Remote address changed
errno:79    Can not access a needed shared library
errno:80    Accessing a corrupted shared library
errno:81    .lib section in a.out corrupted
errno:82    Attempting to link in too many shared libraries
errno:83    Cannot exec a shared library directly
errno:84    Invalid or incomplete multibyte or wide character
errno:85    Interrupted system call should be restarted
errno:86    Streams pipe error
errno:87    Too many users
errno:88    Socket operation on non-socket
errno:89    Destination address required
errno:90    Message too long
errno:91    Protocol wrong type for socket
errno:92    Protocol not available
errno:93    Protocol not supported
errno:94    Socket type not supported
errno:95    Operation not supported
errno:96    Protocol family not supported
errno:97    Address family not supported by protocol
errno:98    Address already in use
errno:99    Cannot assign requested address
errno:100   Network is down
errno:101   Network is unreachable
errno:102   Network dropped connection on reset
errno:103   Software caused connection abort
errno:104   Connection reset by peer
errno:105   No buffer space available
errno:106   Transport endpoint is already connected
errno:107   Transport endpoint is not connected
errno:108   Cannot send after transport endpoint shutdown
errno:109   Too many references: cannot splice
errno:110   Connection timed out
errno:111   Connection refused
errno:112   Host is down
errno:113   No route to host
errno:114   Operation already in progress
errno:115   Operation now in progress
errno:116   Stale file handle
errno:117   Structure needs cleaning
errno:118   Not a XENIX named type file
errno:119   No XENIX semaphores available
errno:120   Is a named type file
errno:121   Remote I/O error
errno:122   Disk quota exceeded
errno:123   No medium found
errno:124   Wrong medium type
errno:125   Operation canceled
errno:126   Required key not available
errno:127   Key has expired
errno:128   Key has been revoked
errno:129   Key was rejected by service
errno:130   Owner died
errno:131   State not recoverable
errno:132   Operation not possible due to RF-kill
errno:133   Unknown error 133
errno:134   Unknown error 134
errno:135   Unknown error 135
errno:136   Unknown error 136
errno:137   Unknown error 137
errno:138   Unknown error 138
errno:139   Unknown error 139
errno:140   Unknown error 140
errno:141   Unknown error 141
errno:142   Unknown error 142
errno:143   Unknown error 143
errno:144   Unknown error 144
errno:145   Unknown error 145
errno:146   Unknown error 146
errno:147   Unknown error 147
errno:148   Unknown error 148
errno:149   Unknown error 149
errno:150   Unknown error 150
errno:151   Unknown error 151
errno:152   Unknown error 152
errno:153   Unknown error 153
errno:154   Unknown error 154
errno:155   Unknown error 155
errno:156   Unknown error 156
errno:157   Unknown error 157
errno:158   Unknown error 158
errno:159   Unknown error 159
errno:160   Unknown error 160
errno:161   Unknown error 161
errno:162   Unknown error 162
errno:163   Unknown error 163
errno:164   Unknown error 164
errno:165   Unknown error 165
errno:166   Unknown error 166
errno:167   Unknown error 167
errno:168   Unknown error 168
errno:169   Unknown error 169
errno:170   Unknown error 170
errno:171   Unknown error 171
errno:172   Unknown error 172
errno:173   Unknown error 173
errno:174   Unknown error 174
errno:175   Unknown error 175
errno:176   Unknown error 176
errno:177   Unknown error 177
errno:178   Unknown error 178
errno:179   Unknown error 179
errno:180   Unknown error 180
errno:181   Unknown error 181
errno:182   Unknown error 182
errno:183   Unknown error 183
errno:184   Unknown error 184
errno:185   Unknown error 185
errno:186   Unknown error 186
errno:187   Unknown error 187
errno:188   Unknown error 188
errno:189   Unknown error 189
errno:190   Unknown error 190
errno:191   Unknown error 191
errno:192   Unknown error 192
errno:193   Unknown error 193
errno:194   Unknown error 194
errno:195   Unknown error 195
errno:196   Unknown error 196
errno:197   Unknown error 197
errno:198   Unknown error 198
errno:199   Unknown error 199
errno:200   Unknown error 200
errno:201   Unknown error 201
errno:202   Unknown error 202
errno:203   Unknown error 203
errno:204   Unknown error 204
errno:205   Unknown error 205
errno:206   Unknown error 206
errno:207   Unknown error 207
errno:208   Unknown error 208
errno:209   Unknown error 209
errno:210   Unknown error 210
errno:211   Unknown error 211
errno:212   Unknown error 212
errno:213   Unknown error 213
errno:214   Unknown error 214
errno:215   Unknown error 215
errno:216   Unknown error 216
errno:217   Unknown error 217
errno:218   Unknown error 218
errno:219   Unknown error 219
errno:220   Unknown error 220
errno:221   Unknown error 221
errno:222   Unknown error 222
errno:223   Unknown error 223
errno:224   Unknown error 224
errno:225   Unknown error 225
errno:226   Unknown error 226
errno:227   Unknown error 227
errno:228   Unknown error 228
errno:229   Unknown error 229
errno:230   Unknown error 230
errno:231   Unknown error 231
errno:232   Unknown error 232
errno:233   Unknown error 233
errno:234   Unknown error 234
errno:235   Unknown error 235
errno:236   Unknown error 236
errno:237   Unknown error 237
errno:238   Unknown error 238
errno:239   Unknown error 239
errno:240   Unknown error 240
errno:241   Unknown error 241
errno:242   Unknown error 242
errno:243   Unknown error 243
errno:244   Unknown error 244
errno:245   Unknown error 245
errno:246   Unknown error 246
errno:247   Unknown error 247
errno:248   Unknown error 248
errno:249   Unknown error 249
errno:250   Unknown error 250
errno:251   Unknown error 251
errno:252   Unknown error 252
errno:253   Unknown error 253
errno:254   Unknown error 254
errno:255   Unknown error 255
errno:256   Unknown error 256

perror()

头文件:#include<stdio.h>
功能:打印系统错误信息

原型:

void perror(const char*s)
 s:字符串提示符
函数结果输出形式:s:strerror(errno)//提示符,发生系统错误的原因

返回值:

函数无返回值

strerror()

功能:将错误码以字符串的信息显示出来
原型:char*strerror(int errnum)//errnum即就是errno
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值