利用可能なシリアル ポートを一覧表示する小さな C プロジェクトを作成しています (実際には Linux で)。使用可能な ttyS、ttyUSB、pty などを一覧表示する必要があります。私の問題は、それを行う適切な方法がわからないことです。たとえば、私の /dev ディレクトリには ttyS0 から ttyS31 までのデバイスがありますが、実際には誰も使用できません。/sys/class/tty/ttyS* でドライバーを探してみましたが、すべてのデバイスが本物のようです。実際には、「socat pty pty」によって開かれた pty のみをリストできますが、私の意見では、コマンド「lsof -w -c socat | grep -o '/dev/pts/[0-9]*' | uniq -u' より良い方法を探しています。
私のプロジェクト: https://github.com/mdrost/serialportlist
可能性のある技術的なヘルプと機能に関するコメントに感謝します。