Por que não experimentar?
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv) {
int fd = open("333222.c", 0);
printf("%d\n", fd);
sleep(120);
if (fd >= 0) {
close(fd);
}
}
Salvar como 333222.c
, compilá-lo e executá-lo:
gcc -o 333222 333222.c
./333222 &
Isso mostrará o pid e o descritor de arquivo (3); use o primeiro para listar os descritores de arquivo:
ls -l /proc/.../fd
e você verá o descritor de arquivos 3 vinculado a 333222.c
.
Para responder à sua pergunta, /proc/$pid/fd/$fd
corresponde ao descritor de arquivo $fd
dentro do programa em execução com pid $pid
, conforme retornado por open(2)
e assim por diante, e está de fato vinculado ao arquivo real que foi aberto (se ainda estiver lá).