デフォルトで割り当てられるファイル記述子3は何ですか?


19
$ ls -og /proc/self /proc/self/fd
lrwxrwxrwx 1 64 Jun 18 11:12 /proc/self -> 32157

/proc/self/fd:
total 0
lrwx------ 1 64 Jun 22  2012 0 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 1 -> /dev/tty1
lrwx------ 1 64 Jun 22  2012 2 -> /dev/tty1
lr-x------ 1 64 Jun 22  2012 3 -> /proc/32157/fd

デフォルトで割り当てられるファイル記述子3は何ですか?

回答:


34

なし:STDIN、STDOUT、およびSTDERRの3つの標準ファイル記述があります。それらはそれぞれ0、1、2に割り当てられます。

表示されているものは、ls(1)動作の仕組みの成果物です。/proc/self/fdディレクトリのコンテンツを読み取って表示するには、そのディレクトリを開く必要があります。

つまり、通常は最初に使用可能なファイルハンドルを取得します。したがって、3です。

たとえばcat、別のコンソールで実行して検査/proc/${pid}/fdすると、最初の3つだけが割り当てられていることがわかります。


ああ、それは結果を説明します、それは同様に3指し示すという事実も含み/proc/32157/fdます。(なぜ私はそれを見逃したのですか?)ありがとう!
-musiphil
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.