c - 为什么 ioctl 在没有连接设备的情况下返回 0?
问题描述
我有一个带有运动传感器的树莓派。当我运行 ioctl() 调用时,无论是否连接了运动传感器,它总是返回 0?
ioctl(fd,I2C_SLAVE,_DEVICE_Addr)
解决方案
这是预期的行为。I2C_SLAVE
ioctl 不检查设备是否存在。它根本不在 I2C 总线上进行通信。它只是做一些检查以了解该地址是否已被使用,然后保存客户端地址以供后续调用。
不幸的是,这没有记录,但您可以在代码中阅读:https ://elixir.bootlin.com/linux/v5.8/source/drivers/i2c/i2c-dev.c#L401
推荐阅读
- spring-boot - ADFS 4.0 中的令牌自省端点
- agora.io - 在用户作为主持人或观众加入后,在 Agora GroupVoice 中调用鼠标单击事件不起作用
- javascript - 多个音频播放器的进度条
- jira - 如何在右侧 jira 数据中心问题视图页面中呈现页面
- reactjs - 如何将 Swiper 样式连接到 Next.js
- c# - 避免访问嵌套类的构造函数
- javascript - 修改对象数组中的所有对象
- google-apps-script - 适用于 Bigquery 的数据洞察社区连接器 - 高级服务
- .net - 从 IIS 运行时出现 DPAPI CryptographicException
- http - 如何在 Julia 中使用 Genie.jl 收集 HTTP 响应状态