我正在编写小型 C 项目以列出可用的串行端口(实际上是在 Linux 上)。它应该列出可用的 ttyS、ttyUSB、pty 等。我的问题是我不知道什么是正确的方法。例如,在我的 /dev 目录中,我有从 ttyS0 到 ttyS31 的设备,但实际上没有一个可用。我尝试在 /sys/class/tty/ttyS* 中寻找驱动程序,但所有设备似乎都是真实的。实际上我只能列出由'socat pty pty'打开的pty,但在我看来这是hack,因为我只是包装了命令'lsof -w -c socat | grep -o '/dev/pts/[0-9]*' | uniq -u' 我正在寻找更好的方法。
我的项目:https ://github.com/mdrost/serialportlist
对于可能的技术帮助和有关功能的评论,我将不胜感激。