A questão é baseada em um equívoco sobre a generalidade dos sistemas de arquivos proc. Os sistemas que implementam isso (como Solaris e Linux) possuem dispositivos especiais que podem ser usados para criação de scripts, incluindo /dev/fd
seguido por um descritor de arquivo (número).
Com o Solaris, /dev/fd
é uma pasta virtual em /dev
, enquanto o Linux usa um link simbólico para /proc
em uma pasta (virtual) correspondente ao seu ID do processo. Não há padrões para os sistemas de arquivos proc, e os detalhes serão diferentes.
Verificando os sistemas AIX 5.3 e 7.1, eles implementam um sistema de arquivos proc, mas não possuem /dev/fd
. No entanto, eles fazem tem um sistema de arquivos virtual /proc
, sob o qual você pode encontrar seu ID de processo atual e que é uma pasta fd
com descritores de arquivo.
Convencionalmente, os descritores de arquivo são inicializados 0, 1, 2 para stdin , stdout , stderr respectivamente.
Leitura adicional:
-
/proc
- Contém informações de estado sobre processos e encadeamentos no sistema (AIX 7) parafd
:Contains files for all open file descriptors of the process. Each entry is a decimal number corresponding to an open file descriptor in the process. If an entity refers to a regular file, it can be opened with normal file semantics. To ensure that the controlling process cannot gain greater access, there are no file access modes other than its own read/write open modes in the controlled process. Directories will be displayed as links. An attempt to open any other type of entry will fail (hence it will display 0 permission when listed).