[dx@bolsa test/asd/arise]$ cat asd.c #include #include #include int main() { int fd = open("/tmp/lol", O_RDONLY); printf("fd == %d\n", fd); system("ls -l /proc/self/{exe,fd}"); close(fd); return 0; } [dx@bolsa test/asd/arise]$ gcc asd.c -o asd && ./asd fd == 3 lrwxrwxrwx 1 dx users 0 Apr 3 12:51 /proc/self/exe -> /usr/bin/ls /proc/self/fd: total 0 lrwx------ 1 dx users 64 Apr 3 12:51 0 -> /dev/pts/8 lrwx------ 1 dx users 64 Apr 3 12:51 1 -> /dev/pts/8 lrwx------ 1 dx users 64 Apr 3 12:51 2 -> /dev/pts/8 lr-x------ 1 dx users 64 Apr 3 12:51 3 -> /tmp/lol lr-x------ 1 dx users 64 Apr 3 12:51 4 -> /proc/4324/fd