ソケット(以下のサンプルコード)を指すファイルディスクリプタがあります。ソケットがbashで閉じられているかどうかを確認しますか?
exec 3<>/dev/tcp/localhost/9999
echo -e "Some Command\n" >&3
時々、そのソケットが閉じて、再度開く必要があります(サーバーの再起動)。
ソケット(この場合はfd#3)が書き込み可能かどうかをテストするにはどうすればよいですか?
エコーは、ソケットが既に閉じられているかどうかにかかわらず、常に成功します。
_it writable_ **か** _itがクローズされているかどうかを知りたいですか?最初のものは許可の質問、後者のものは状態の質問です。これらはわずかに関連しています(有効なファイルモードは、開かれているフラグによって影響を受けることがあります)。 – sehe
@sehe許可の質問ではありません。彼はソケットについて話している。ソケットに関連する書き込み許可はありません。ソケットを開くことができれば、それを読んで書き込むことができます。 – EJP
最も具体的には閉じている場合。私はそれが書き込み可能であることを知っている、私は通常の条件でソケットを開くことができますが、私は接続を(ネットワークの問題、サーバーがスクリプトが実行されているなどシャットダウン)を緩めるとき、私は先に進む前に再オープンする必要があります。 –