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