さまざまな POSIX 準拠システムで USB シリアル ポートとして表示できるデバイスを作成します。私は、発信者が現在利用可能な (つまり、使用されていない、適切な権限を持っているなどの) デバイスのすべてのインスタンスのリストを取得できるようにする API をサポートしています。発信者は、使用中のデバイスも示されているリストを取得することもできます。
もちろん、これを行う簡単な方法は、各候補のシリアルポートを開閉して、どれが開くことができるかを確認することです。このAPIを使用する複数のアプリケーション(アプリのライブラリ/ dylib)が競合状態を作成する可能性があるため、これを行わないことをお勧めします。両方が同じシリアルポートを同時にクエリしようとすると、1つのアプリデバイスが使用されていたと誤って考えます。
だから私が必要としているのは、実際にポートを開かなくても、ポートが開くことができることを知る方法です。ポートが使用中であることを示すために作成された特別なファイルがあるロックファイルスキームを使用する他の人を見てきました-ファイルが存在しない場合、ポートが使用可能であるという前提があります。私の問題は、私のライブラリ以外のポートの他のユーザーがスキームなどを遵守していない可能性があるため、それに依存できないことです。
実際にファイルを開こうとせずに、この点でファイルのステータスを照会できる低レベルの POSIX 機能はおそらくありますか?