stdout
なぜプロセスを終了できないのですか?
コマンドをリダイレクトしようとしています。以下はうまくいきます:
ls -a 0>&-
ls -a 2>&-
これは閉鎖stdin
とstderr
処理を意味しますls -a
。しかし、なぜシャットダウンにstdout
失敗するのですか?入っています(状態
aniket@aniket-Compaq-610:~/Downloads$ ls -a 1>&-
ls: write error: Bad file descriptor
ここでstdoutをオフにすることは意味がないことを知っていますが、なぜこれが許可されないのか疑問に思います。
答え1
明らかにstdoutを閉じることは失敗しませんでしたが、エラーメッセージに見られるように書き込みに失敗したので成功しました。編集:私の答えを明確にするために、シェルは最初にファイル記述子を閉じるように指示され、次にプログラムがファイル記述子を書き込もうとしますls
。ここでエラーメッセージが表示されます。