Пытаюсь разобраться в файловых дескрипторах. Читаю разные статьи, пока не очень понятно как потрогать эти самые дескрипторы.
Вот я выбрал интересующий процесс (vlc с открытым фильмом).
pidof vlc
Получил его PID.
lsof -p PID
По идее это покажет список всех файлов, открытых процессом, а заодно и их дескрипторы. Ожидал увидеть 1 строку с названием фильма. А там (помимо фильма) - просто МИЛЛИОННАЯ ПРОСТЫНЯ! Сотни файлов типа dir, reg, chr, fifo, unix, a_inode. Что это такое?
Неужели, чтобы плеер запустил простое видео, нужно действительно открыть сотни этих файлов?
Отдельно заинтересовала графа FD (думал что это файловый дескриптор). Там всякие cwd, rtd, mem, del, txt... а ближе к концу вида «0r, 1w, 2w, 3r...26u...» и т.д. Что это означает? Я читал, что файловый дескриптор это целое число... Значит, это не файловый дескриптор?
Еще интересно что значат числа вроде «253,1» и «0,12» в графе device.
Еще нашел какую-то команду:
List File Descriptors in Kernel Memory
sysctl fs.file-nr
Но что-то не то выдает. Хотелось получить файловый дескриптор одного из файлов, вызванных процессом vlc, например.