Varsayılan olarak atanan dosya tanımlayıcı 3 nedir?


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

Varsayılan olarak atanan dosya tanımlayıcı 3 nedir?

Yanıtlar:


34

Hiçbir şey: STDIN, STDOUT ve STDERR olmak üzere üç standart dosya tanımı vardır. Sırasıyla 0, 1 ve 2'ye atanırlar.

Gördüğünüz şey, ls(1)çalışma şeklinin bir eseri var: /proc/self/fddizinin içeriğini okumak ve görüntülemek için o dizini açması gerekiyor.

Bu bir dosya tanıtıcısı alır, genellikle ilk kullanılabilir ... böylece, 3.

Diyelim ki, catayrı bir konsolda koşacak ve inceleyecek /proc/${pid}/fdolsaydınız, sadece ilk üçünün atandığını görürdünüz.


Ah, bu da sonucu açıklıyor, buna da 3işaret ediyor /proc/32157/fd. (Bunu neden özledim?) Teşekkür ederim!
musiphil
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.