我觉得这应该很容易,但它仍然让我烦恼,所以就在这里。我一直在尝试找到一个简单的解决方案来迭代 Linux 上可用的 UART 串行端口(我正在运行最新版本的 Manjaro Linux),然后将它们打印到控制台。然而,到目前为止我发现的所有解决方案都非常复杂,或者它们最终会抛出一堆我在测试它们时无法弄清楚的错误。
所以,我回到这里看看其他人是否有任何想法。在 Windows 上,有一个 Windows 的 System::IO::Ports
的 GetPortNames()
,也许类似的 API 调用是最理想的。
更新:
因此,在收到答案并使用该信息了解更多有关在 Linux 上与串行端口交互的信息后,我最终找到了一种好方法来实现迭代可用端口的效果。它并不像一行命令那么简单,但它可以工作,所以对我来说很好。我发现这种通过/sys/class/tty 目录进行迭代/排序的方法作为另一个问题的答案(我使用的代码的作者名叫 Søren Holm),你可以看看 here .
最佳答案
两种简单的可能性:
Linux 上的串口是字符设备文件,您可以在
/dev/ttyS*
中看到它们。 USB 设备创建的串行端口位于/dev/ttyUSB*
中。这会将您的问题简化为直接迭代。还有一个名为 sysfs 的东西,它本质上是一个运行时的、非持久的、内核内部的注册表,通过虚拟文件系统导出到用户空间。通常它安装在
/sys
下面。您可以在/sys/bus/serio/devices
下面找到这些设备。
关于c++ - 如何在 Linux 和 C++ 上迭代 com 端口并打印到控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38064930/