现在的位置: 首页 > 综合 > 正文

[Linux][2011-11-5] error 宏 linux socket

2014年11月23日 ⁄ 综合 ⁄ 共 3594字 ⁄ 字号 评论关闭

所有的错误代码都在头文见“errno.h”中定义,它们所有的展开以后都是整数常量。这里的有些错误在GNU的系统中不会发生,但是在其他系统中使用GNU库的时候会出现。


宏: int EPERM

操作不被允许;只有文件(或其他资源)或进程的主人才能有特权作这个操作。


宏: int ENOENT

没有这样的文件或目录。这是一个普通文件上的“文件不存在”错误,文件不在提到的目录表中。


宏: int ESRCH

没有进程符合指定的进程号。


宏: int EINTR

函数调用中断;一个异步信号出现而且阻止调用的执行。当出现这样的情况时,你必须试着重新调用。

你可以选择一个函数来在处理完信号以后恢复,这样比出现RINTR的失败要好,《简单的信号中断》。


宏: int EIO

输入输出错误;通常是物理的读写错。


宏: int ENXIO

没有这样的设备或地址。通常,这意味着一个文件描述的设备并没有正确安装,系统不能为它找到正确的设备驱动程序。


宏: int E2BIG

参数列表太长;当使用exec函数中的某一个执行新程序时传递的参数占用了太多的内存空间。这种情况不会出现在GNU的系统中。


宏: int ENOEXEC

无效的可执行文件格式。这种情况由exec函数检测出来;《执行一个文件


宏: int EBADF

错误的文件描述符;比如说,在一个已经关闭的文件描述符上作IO操作或读取一个写打开的描述符(反之亦然)。


宏: int ECHILD

没有子进程。这个错误出现在想要作操纵子进程的操作的时候,已经没有任何可以操纵的子进程了。


宏: int EDEADLK

死锁避免;分配系统资源的时候将可能导致死锁的情况,比如说,参见《文件锁定


宏: int ENOMEM

没有可用的内存。系统不能分配更多的虚拟内存因为它的容量已经满了。


宏: int EACCES

许可权被封锁;文件的许可权不允许所尝试的操作。


宏: int EFAULT

错误地址;检测到一个无效指针。


宏: int ENOTBLK

给出的这种方式需要块特殊文件而这个文件不是。比如说:试图把一个普通文件当文件系统挂在unix系统中将出现这个错误。


宏: int EBUSY

资源忙;一个正在使用的系统资源不能被共享。比如说,你需要删除的文件是一个挂在系统中的文件系统,你将得到这个错误。


宏: int EEXIST

文件已存在;应该对新文件操作的时候这个文件已经明确存在于目录表中。


宏: int EXDEV

尝试跨文件系统作文件链接。


宏: int ENODEV

在需要进去日指明设备类别的函数中给出了错误的设备类型。


宏: int ENOTDIR

在只能处理目录的时候给出的是文件而不是目录。


宏: int EISDIR

是一个目录文件;尝试打开一个目录文件来作写操作时就会发生这个错误。


宏: int EINVAL

无效的参数。用来指出传递给库函数参数时候的各种问题。


宏: int ENFILE

整个系统中打开了太多不同的文件。注意许多连结通道都会被计算成一个打开的文件;参见《连结通道


宏: int EMFILE

当前进程已经打开了太多文件而且不能再打开了。


宏: int ENOTTY

不适当的IO控制操作,比如说在一个普通文件上试图设置终端模式。


宏: int ETXTBSY

一个打算运行的文件当前正被写打开,或要写打开的文件当前正在运行。(这个名字象征着“文本文件忙”。)在GNU的系统中这不是一个错误;可能的情况下文本文件将被复制。


宏: int EFBIG

文件太大。文件的大小超过了系统的允许。


宏: int ENOSPC

设备上没有空间;因为磁盘满而造成写操作失败。


宏: int ESPIPE

错误的查找操作(比如在管道中)。


宏: int EROFS

在一个只读的文件系统中试图修改一个文件。


宏: int EMLINK

太多的连接;单个文件的连结数太大。


宏: int EPIPE

断掉的管道;在管道的另一边没有进程来读取。所有库函数在返回这个错误代码的时候都会产生一个SIGPIPE信号;如果不处理或阻止的话这个信号将终止程序。如此,要是不处理或阻止SIGPIPE的话你的程序实际上看不到EPIPE。


宏: int EDOM

域错误;当数学函数得到的参数值不在函数允许范围内的时候出现这个错误。


宏: int ERANGE

范围错误;当数学函数的结果因上溢或下溢而无法描述的时候出现此错误。


宏: int EAGAIN

资源零是不可用;如果你稍候在作此调用或许会成功。只有fork会因为这个原因返回EAGAIN错误码。


宏: int EWOULDBLOCK

在一个非块格式的目标上作需要块的操作。

兼容性提示:在4.4BSD和GNU中,EWOULDBLOCK和EAGAIN是一样的。早期版本的BSD(参见《伯克利UNIX》)使用两个不同的代码,用EWOULDBLOCK来表示需要块的操作,而EAGAIN表示其他种类的错误。

 


宏: int EINPROGRESS

在一个选择为非块型的目标上的初始化操作不能立即完成。


宏: int EALREADY

在一个选择为非块型的目标上的一个操作正在进行。


宏: int ENOTSOCK

当需要一个套接字的时候指定的文件不是套接字。


宏: int EDESTADDRREQ

在套接字操作中没有指定目标地址。


宏: int EMSGSIZE

送往套接字的消息的大小操作的支持的最大尺寸。


宏: int EPROTOTYPE

所要求的通信协议不支持套接字的种类。


宏: int ENOPROTOOPT

你指定的套接字操作不能被使用的套接字的协议所识别,参见《套接字操作


宏: int EPROTONOSUPPORT

套接字域不支持请求的通信协议。参见《创建一个套接字


宏: int ESOCKTNOSUPPORT

套接字类型不被支持。


宏: int EOPNOTSUPP

你请求的操作不被支持。一些套接字函数不被所有类型的套接字识别,而且有些不能在所有的通信协议上实现。


宏: int EPFNOSUPPORT

你请求的套接字协议组不被支持。


宏: int EAFNOSUPPORT

一个套接字指定的地址组不被支持;它和套接字使用的协议不一致。参见《套接字


宏: int EADDRINUSE

请求的套接字地址正在使用。参见《套接字地址


宏: int EADDRNOTAVAIL

请求的套接字地址已经不可用;比如说,你试着把一个和本机名字不一样的名字给套接字。参见《套接字地址


宏: int ENETDOWN

由于网络不通造成一个套接字操作失败。


宏: int ENETUNREACH

由于子网上的远程主机不可到达造成一个套接字操作失败。


宏: int ENETRESET

由于远程主机崩溃导致网络连接复位。


宏: int ECONNABORTED

一个网络连接被本地中断。


宏: int ECONNRESET

由于外界控制本地主机的原因造成一个网络连接关闭。比如远程的重启动。


宏: int ENOBUFS

IO操作的内核缓冲区都在使用。


宏: int EISCONN

你试图连接一个已经连接了的套接字。参见《创建一个连接》。


宏: int ENOTCONN

套接字没有连接任何东西。你得到这个错误的原因是你试图通过一个套接字传送数据,但是却没有先指定数据的目标。


宏: int ESHUTDOWN

套接字已经被关闭。


宏: int ETIMEDOUT

套接字操作在指定的超时时间间隔内没有收到回音。


宏: int ECONNREFUSED

远程主机拒绝建立网络连接。(通常是因为它并不运行请求的这种服务)


宏: int ELOOP

在查找文件名的时候遇到了许多指向它的符号连接。这个通常用来指出一个符号连接的环路。


宏: int ENAMETOOLONG

文件名太长(比PATH_MAX还要长;参见《文件系统容量限制》)货主机名字太长(在gethostname或sethostname中;参见《主机身份

 


宏: int EHOSTDOWN

请求网络连接的远程主机停机。


宏: int EHOSTUNREACH

请求网络连接的远程主机不可到达。


宏: int ENOTEMPTY

在需要空目录的时候目录非空。通常这个错误出现在你准备删除一个目录的时候。


宏: int EUSERS

文件配额系统由于太多用户而拒绝。


宏: int EDQUOT

用户的磁盘限额已经超过。


宏: int ESTALE

过期的NFS文件句柄。这里只是了NFS系统的内部混乱而且需要对服务器主机的文件系统重新整理。修理这种问题通常需要在本地主机上卸下再重新挂上此NFS文件系统。


宏: int EREMOTE

一个使用文件名来通过NFS加载远程文件系统的时候此文件名已经指定给一个加载好的文件了。(这只是在某些操作系统上的错误,但是我们希望在GNU系统上能运行正常,使这个错误代码不可能实现)


宏: int ENOLCK

没有可用的锁定。由文件锁定功能使用;参见《文件锁

 


宏: int ENOSYS

功能没有实现。一些功能包括命令和选项的定义可能没有被所有的实现所支持,也就是你请求这些没有被支持的功能的时候你会得到这一类的错误。


宏: int ED

有经验的用户将知道错误是什么。


宏: int EGRATUITOUS

这个错误信息没有用处。

抱歉!评论已关闭.