シリアルポートデバイスの読み取り()でアプリケーションがロックされました。

シリアルポートデバイスの読み取り()でアプリケーションがロックされました。

ARMマシンのOS Linaro。
仮想シリアルポートプロファイルを公開するUSB​​デバイスと通信するCコンソールアプリケーションを作成しています。
時々USBデバイスの接続が切断され、再接続されることがあります。私のアプリケーションはread()呼び出しで永久にロックされます。
read() が何らかのエラーコードを返さないのはなぜですか?
シリアルデバイスドライバに問題がありますか?

ロックをどのように検出し、何よりもread()呼び出しを終了するにはどうすればよいですか?

関連情報