如何在 Linux 和C++ 上遍历 com 端口并打印到控制台?
How to iterate through com ports and print to console on Linux & C++?
我觉得这应该很容易,但它一直困扰着我,所以就这样。我一直在努力寻找一个简单的解决方案,在linux上迭代可用的UART串行端口(我运行的是最新版本的Manjaro linux(,然后将这些端口打印到控制台。然而,到目前为止,我发现的所有解决方案都非常复杂,或者它们最终会抛出一堆错误,我在测试它们时无法弄清楚。
所以,我不得不回到这里,看看是否有其他人有任何想法。在Windows上,有一个Windows的System::IO::Ports
的GetPortNames()
,也许类似的API调用将是最理想的。
更新:
因此,在收到答案并使用这些信息了解更多关于在linux上与串行端口交互的信息后,我最终找到了一种很好的方法来实现在可用端口中迭代的效果。它不像一行命令那么简单,但它很有效,所以对我来说很好。我发现这种在/sys/class/tty目录中迭代/排序的方法是对另一个问题的回答(我使用的代码的作者名叫søren Holm(,你可以在这里看一下。
两种简单的可能性:
-
linux上的串行端口是字符设备文件,您可以在
/dev/ttyS*
上看到它们。usb设备创建的串行端口位于/dev/ttyUSB*
中。这将问题简化为直接迭代。 -
还有一个名为sysfs的东西,它本质上是一个运行时、非持久性的内核内部注册表,通过虚拟文件系统导出到用户空间。通常安装在
/sys
下方。在/sys/bus/serio/devices
下面,您可以找到这些设备。
相关文章:
- c ++控制台应用程序,如何在控制台外部打印字符
- 控制台打印时间功能产生1
- 如何通过按 F2 或 F3 等键使控制台打印某些内容
- cout 不打印任何内容到控制台
- 如何在 C++ 中将 U32 字符串和 U16string 打印到控制台
- 打印到文件和控制台 C++
- 在 c++ 中打印到控制台的最佳方式是什么?
- 我的控制台正在打印随机单词以及没有执行正确的数学运算
- C++控制台打印在同一行上,带回车符
- 硬编码字符串与强制转换为 PUCHAR 并打印到控制台时从控制台读取的字符串的结果不同
- V8 控制台.log不打印
- 使用 C++ shell 为 C++ 中的 2 D 动态数组赋值,控制台不会打印出任何内容
- cURL 保持打印传输到控制台?
- SDL 未打印到控制台
- qDebug() 在升级到 ubuntu 17.10(和 Fedora)后停止工作(不再打印到控制台)
- 使用具有 UTF8 编码的源文件将 UTF8 符号打印到 Windows 控制台
- 如何在 ATL COM 模块中打印控制台输出
- 打印到控制台或字符串/流
- Cout 无法在显示器上打印(控制台)
- 禁止从导入的 DLL 打印控制台