FDが2を超えて超過します(stdin / stdout / sterr)。

FDが2を超えて超過します(stdin / stdout / sterr)。

この記事が主題から抜け出したものではないと思います。 Unix コンテキストには 3 つの伝統的なファイル記述子があります。

0 == STDIN
1 == STDOUT
2 == STDERR

しかし、新しい記事、ブログ、投稿、回答などで上記のFDよりも多くの内容を読みました。たとえば、次のようになります。
同じ「オープンファイル記述」を共有するファイル記述子が何であるかを確認します。
シェルループを使用してテキストを処理するのはなぜ悪い習慣と見なされますか?
入力/出力リダイレクト
実行の使用
ファイル記述子とシェルスクリプト
しかし、ザイルズ前のリンクから回答を受けましたが、インターネット検索後にそのFDへの参照が見つかりませんでした。また、次のハッキングを使用する場合:

root@debian:/home/mohsen# ls /dev/fd/
0  1  2  3

4つ以上は見えませんが、いくつかの例では4 5または7が表示され、3つの深刻な質問があります。

  1. FDとは何ですか /dev/fd/3
  2. 残りの人はどこにいますか?
  3. 残りの部分に関する関連資料を知っていますか?

ベストアンサー1

ファイル(またはソケットなどのファイルのように開くことができるすべての項目)を開くたびに、intとして表示されるファイル記述子が取得されます。最初の3つは、プロセスに対して自動的に生成されるstdin、stdout、およびstderrです。開いている他のファイルには追加の記述子が表示されます。毎回数が増えるようですが、これが信頼できる現象なのかはわかりません。したがって、3と4はプロセスによって開かれる最初の2つのファイルになります。 7は5番目のファイルを開きます。

おすすめ記事