2 つの異なるポートを介して 2 つのデバイスに接続するシリアル プログラムがあります。もちろん、読み取るときはいつでも、シリアルから読み取ろうとしているパケットのサイズで静的に割り当てられたローカルバッファーがあります。しかし、私の上司は、このローカル バッファにパケットを格納するのは安全ではないと指摘し、シリアルから読み取るたびに Linux OS バッファをフラッシュできるかどうかを確認するようアドバイスしました。あなたの意見は何ですか?ubuntuでプログラムでそれを行うにはどうすればよいですか?
tcsetattr 関数に TCSAFLUSH を追加すれば、この問題は解決すると思います。これにより、すべてのデータがシリアルに書き込まれた後にバッファがフラッシュされます。これは、次の読み取りの直前に発生します。うまくいけば、しばらくの間sleep()を使用できればいいのですが;)あなたの意見はどうですか?