O sistema de arquivos /proc é virtual - reflete o estado atual dos processos e /proc/$pid/fd apenas lista os arquivos que o processo mantém em aberto no momento. Se um arquivo ou soquete for fechado, sua entrada em /proc/$pid/fd/ desaparecerá automaticamente. Se o processo sair, o diretório /proc/$pid inteiro desaparecerá.
Os descritores de arquivo sempre começam em 0 e o kernel sempre atribui o número não negativo mais baixo possível aos descritores de arquivos recém-criados. No entanto, um processo é sempre livre para fechar qualquer descritor de arquivo que tenha - portanto, é totalmente possível que fd/ contenha "buracos"; por exemplo. fd/0 fd/1 fd/3 fd/6 ou similar.
Para processos multithread, /proc/$pid exibe o estado do thread principal - threads adicionais possuem subdiretórios sob /proc/$pid/task/ (uma tarefa representa um Pthread). No entanto, o POSIX.1 requer que todos os Pthreads dentro de um processo compartilhem os mesmos descritores de arquivos, portanto, o conteúdo de fd/ será o mesmo.