错误号宏
下表列出了 ILE C 库函数可以设置的错误宏。
| 错误宏 | 描述 | 按函数设置 |
|---|---|---|
| EBADDATA | 消息数据无效。 | 珀罗尔山 /strerror perror |
| EBADF | 目录描述符无效。 | catclose , catgets , clearerr , fgetc , fgetpos , fgets , fileno , freopen , fseek , fsetpos , getc , rewind |
| EBADKEYLN | 指定的密钥长度无效。 | _Rreadk 和 _Rlocate |
| EBADMODE | 指定的文件方式无效。 | fopen , freopen 和 _Ropen |
| EBADNAME | 指定了错误的文件名。 | fopen , freopen 和 _Ropen |
| EBADPOS | 指定的位置无效。 | Fsetpos |
| Ebadseek | 寻道操作的偏移量不正确。 | fgetpos 和 fseek |
| EBUSY | 记录或文件正在使用中。 | 珀罗尔山 /strerror perror |
| ECONVERT | 发生转换错误。 | 西斯托姆湾 /wcswidth wcstomb |
| EDOM | 数学函数中存在域错误。 | acos , asin , atan2, cos , exp , fmod , gamma , hypot , j0, j1, jn , y0, y1, yn , log , log10, pow , sin , strtol , strtoul , sqrt , tan |
| EGETANDPUT | 写操作后发生非法读操作。 | fgetc , fread , getc 和 getchar |
| EILSEQ | 字符序列未构成有效的多字节字符。 | fgetwc , fgetws , getwc , mblen , mbrlen , mbrTowc , mbsrTowcs , mbstowcs , mbTowc , printf, scanf, ungetwc , wcrtomb , wcsrtombs , wcstombs , wctomb , wcswidth , wcwidth |
| EINVAL | 信号无效。 | printf, scanf, signal , swprintf , swscanf , wcstol , wcstoll , wcstoul 和 wcstoull |
| EIO | 发生了连续的 I/O 调用。 | I/O |
| EIOERROR | 发生不可恢复的 I/O 错误。 | 所有 I/O 功能 |
| EIORECERR | 发生可恢复 I/O 错误。 | 所有 I/O 功能 |
| ENODEV | 在错误的设备上尝试了操作。 | fgetpos , fsetpos , fseek , ftell , rewind |
| ENOENT | 找不到文件或库。 | 珀罗尔山 /strerror perror |
| ENOPOS | 在指定位置没有记录。 | Fsetpos |
| ENOREC | 找不到记录。 | fread , perror , strerror |
| ENOTDLT | 没有为删除操作而打开文件。 | 删除 (_R) |
| ENOTOPEN | 文件未打开。 | clearerr , fclose , fflush , fgetpos , fopen , freopen , fseek , ftell , setbuf , setvbuf , _Ropen , _Rclose |
| 阅读 | 没有为读操作打开文件。 | fgetc , fread , ungetc , _Rreadd , _Rreadf , _Rreadindv , _Rreadk , _Rreadl , _Rreadn , _Rreadnc , _Rreadp , _Rreads , _Rlocate |
| ENOTUPD | 没有为更新操作而打开文件。 | _Rrlslck 和 _Rupdate |
| ENOTWRITE | 没有为写操作打开文件。 | fputc , fwrite , _Rwrite , _Rwrited 和 _Rwriterd |
| ENUMMBRS | 超过 1 个成员。 | 弗告诉 |
| ENUMRECS | 记录过多。 | 弗告诉 |
| EPAD | 在写操作上发生了填充。 | fwrite |
| EPERM | 权限不足,无法访问。 | 珀罗尔山 /strerror perror |
| EPUTANDGET | 在读操作之后发生了非法写操作。 | fputc , fwrite , fput , putc 和 putchar |
| 范围 (ERANGE) | 数学函数中存在范围错误。 | cos , cosh , gamma , exp , j0, j1, jn , y0, y1, yn , log , log10, ldexp , pow , sin , sinh , strtod , strtol , strtoul , tan , wcstol , wcstoll , wcstoul , wcstoull , wcstod , wcstof , wcstold |
| ERECIO | 为记录 I/O 打开文件,因此不能使用一次字符处理功能。 | fgetc , fgetpos , fputc , fread , fseek , fsetpos 和 ftell |
| ESTDERR | 无法打开 stderr。 | feof , ferror , fgetpos , fputc , fseek , fsetpos , ftell , fwrite |
| 埃斯特丁 | 无法打开 stdin。 | fgetc , fgetpos , fread , fseek , fsetpos , ftell |
| ESTDOUT | 无法打开标准输出。 | fgetpos , fputc , fseek , fsetpos , ftell 和 fwrite |
| ETRUNC | 在 I/O 操作上发生截断。 | 任何读取或写入记录的 I/O 函数都会将 errno 设置为 ETRUNC。 |