错误号宏

下表列出了 ILE C 库函数可以设置的错误宏。

表 1。 errno 宏
错误宏 描述 按函数设置
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 , printfscanf, ungetwc , wcrtomb , wcsrtombs , wcstombs , wctomb , wcswidth , wcwidth
EINVAL 信号无效。 printfscanf, 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。