O que é o descritor de arquivos 3 atribuído por padrão?

16
$ 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

Qual é o descritor de arquivos 3 atribuído por padrão?

    
por musiphil 23.06.2012 / 02:33

1 resposta

29

Nada: existem três descrições de arquivo padrão, STDIN, STDOUT e STDERR. Eles são atribuídos a 0, 1 e 2 respectivamente.

O que você está vendo há um artefato do modo ls(1) funciona: para ler o conteúdo do diretório /proc/self/fd e exibi-lo, ele precisa abrir esse diretório.

Isso significa que ele recebe um identificador de arquivo, normalmente o primeiro disponível ... assim, 3.

Se você fosse executar, digamos, cat em um console separado e inspecionar /proc/${pid}/fd , descobriria que apenas os três primeiros foram atribuídos.

    
por 23.06.2012 / 02:36