通用错误码¶
|
由于设备状态不允许执行,ioctl 无法处理。例如,当设备处于休眠状态且执行 ioctl 以查询统计信息时,可能会发生这种情况。当 ioctl 需要等待事件但设备以非阻塞模式打开时,也会返回此错误。 |
|
文件描述符无效。 |
|
由于设备正忙,ioctl 无法处理。这通常发生在设备正在流式传输时,并且 ioctl 试图更改会影响流的内容,或者需要使用已分配的硬件资源。在未先执行其他操作以解决问题(通常是:在重试之前停止流)的情况下,不得重试该 ioctl。 |
|
从/向用户空间复制数据时发生故障,可能是由无效指针引用引起的。 |
|
一个或多个 ioctl 参数无效或超出允许范围。这是一个广泛使用的错误码。有关具体原因,请参阅各个 ioctl 请求的描述。 |
|
设备未找到或已被移除。 |
|
没有足够的内存来处理所需的操作。 |
|
文件描述符不支持此 ioctl。 |
|
在 USB 设备上,流式 ioctl 可能会返回此错误,这意味着此请求将超出为周期性传输保留的 USB 带宽(高达 USB 带宽的 80%)。 |
|
权限被拒绝。如果设备需要写入权限,或需要某些特殊能力(例如 root 权限),则可能返回此错误。 |
|
I/O 错误。通常在与硬件设备通信出现问题时使用。这可能表明硬件损坏或不稳定。这是一种“出错了,我放弃!”的错误类型。 |
|
不存在与此设备特殊文件对应的设备。 |
注意
此列表并非详尽无遗;ioctl 可能会返回其他错误码。由于错误可能产生副作用,例如驱动程序重置,因此应用程序应在遇到意外错误时中止,或者假定设备处于不良状态。
请求特定的错误码列在各个请求的描述中。