【问题标题】:fopen() fails on /dev/ttyACM0fopen() 在 /dev/ttyACM0 上失败
【发布时间】:2015-07-24 13:16:42
【问题描述】:

我正在开发嵌入式 Linux(通过 buildroot 构建,不是由我构建,但我可以访问)。 我正在通过 USB 连接蜂窝调制解调器,这会创建 ttyACM0(以及更多 ttyACMx)。 我正在使用 pppd 运行调制解调器 - 它工作正常。

我想要做的是更新聊天脚本中的 APN(在运行 pppd 之前),通过询问“AT+CIMI”并解析响应中的网络号。

我尝试了atinout,这是一个非常小的 c 语言程序,它可以在我的笔记本电脑 (Ubuntu) 和另一个嵌入式 Linux 上运行,但在这个平台上失败了。它使用 fopen()。 我试图查明问题并发现 fopen() 失败并出现 errno 5(输入/输出错误)。 我改为 open() 并且它有效!我可以发送 AT 请求并查看收到的响应。

那么 - 怎么了?

*** PS - /dev 安装为 tmpfs,它运行busybox mdev(与 udev 的 devtmpfs 相对,在我的笔记本电脑上)。

谢谢。

【问题讨论】:

  • 您可以通过将版本的strace 输出与fopen()open() 进行比较来进一步调查;也许open() 是用不同的标志调用的。

标签: linux fopen


【解决方案1】:

最终我使用了一个带有 Qt 框架的串口 API(它是一个 Qt 应用程序)。 它使用基本的 open()/write() API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2022-09-30
    • 2014-08-18
    • 1970-01-01
    相关资源
    最近更新 更多