#ifndef errno
extern int errno;
#endif
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main()
{
FILE *stream;
char *filename = "test-e";
errno = 0;
stream = fopen(filename, "r");
if ( stream == NULL ) {
printf("open file %s failed, errno is %d\n", filename,errno);
} else {
printf("open file %s successfully\n", filename);
}
}
beyes@linux-beyes:~/C> ./checkerrno.exe
open file test-e failed, errno is 2
ENOMEM | 内存不足,系统不能再提供更多的虚拟内存 |
EIO | 输入输出错误,在读写磁盘时经常会遇到 |
ENXIO | 指定的设备或地址不存在 |
ESRCH | 没有进程与给定的进程 ID 匹配 |
ENOENT | 文件或目录不存在 |
EINTR | 函数调用被中断,如果发生这种错误,要重新调用函数 |
E2BIG | 参数过长 |
ENOEXEC | 可执行文件格式无效 |
EBADF | 文件描述符错误 |
ECHILD | 子进程不存在 |
EBUSY | 资源正在使用,不能共享 |
EINVAL | 无效的参数 |
IMFILE | 当前进程打开的文件已达上限,不能再打开其他文件 |
ENFILE | 系统打开的文件已达上限 |
EFBIG | 文件太大 |
ENOTDIR | 当需要目录的时候指定了一个非目录文件 |
EISDIR | 文件是一个目录 |
ENOTTY | 不适当的 I/O 操作 |
ETXTBSY | 尝试执行一个正在进行写操作的文件或者尝试写一个正在执行的文件 |
ENOSPC | 设备上无剩余空间 |
EPERM | 禁止操作,只有具备相应权限的进程才能执行该操作 |
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |