多くのPOSIXスレッドがあり、シリアルポートから読み取る2つのリーダーと、ファイル記述子を使用して同じポートに書き込む他のリーダーがあります。それらの間で同じ記述子を共有するにはどうすればよいですか?セマフォによってすべてのスレッド間で読み取り/書き込みアクションと書き込み/書き込みアクションを同期しました。
注:ファイル記述子は同じプロセスのスレッド間で共有する必要があると思いますが、EBUSY
2番目のリーダーがポートから読み取ろうとすると、コードがエラーで実行されません。(前に質問した)
アップデート
これは少し奇妙な状況です。実行時にスレッドが1つしかない場合でも、エラーで戻ったread()
後に呼び出すと。多分私は間違った質問をしている。デバイスが無料であることを確認するために、それぞれの後に何らかの種類があるはずですか?またはどういうわけかブロックするように強制しますか?write()
-l
EBUSY
flush
write()
write()