Исправление Rootlexx, (текущая версия) :
Пытаюсь разобраться в файловых дескрипторах. Читаю разные статьи, пока не очень понятно как потрогать эти самые дескрипторы.
С какой целью интересуетесь? Тяжело внятно объяснить, не ударившись в программирование.
Сотни файлов типа dir, reg, chr, fifo, unix, a_inode. Что это такое?
Это разные типы. dir - понятно, каталог, reg - regular file (обычный файл), a_inode - анонимный (т.е. без соответствующего ему файла на диске) inode, и т.д. Кроме первых двух это уже «внутренности» системы.
Там всякие cwd, rtd, mem, del, txt… а ближе к концу вида «0r, 1w, 2w, 3r…26u…» и т.д. Что это означает?
cwd - это current working directory (текущий каталог), rtd - корневой, mem - это файлы, отображённые в память (см. mmap), и т.д. См. man lsof
.
<число><r|w|u> (например, «0r», «1w», «26u») - это как раз то, что вас интересует. Число - дескриптор, символ - режим, в котором открыт файл: на чтение, на запись или оба.
Еще интересно что значат числа вроде «253,1» и «0,12» в графе device.
Устройства в Linux однозначно идентифицируются парой чисел major-minor. Если упрощённо, то первое - это тип устройства, а второе - его индекс. Т.е. пара 253,1 означает «устройство типа 253 номер 1».
Неужели, чтобы плеер запустил простое видео, нужно действительно открыть сотни этих файлов?
Плеер - это довольно сложная программа, которой нужно взаимодействовать как с самой собой (между разными её компонентами), так и со средой, в которой она работает: графическая система, менеджер сессии (чтобы экран не гасился во время воспроизведения) и т.д. Чтобы не плодить 100500 специфических способов общения на каждый частный случай, всё строится поверх существующего файлового и сетевого API - отсюда и множество открытых файлов.
Исходная версия Rootlexx, :
Пытаюсь разобраться в файловых дескрипторах. Читаю разные статьи, пока не очень понятно как потрогать эти самые дескрипторы.
С какой целью интересуетесь? Тяжело внятно объяснить, не ударившись в программирование.
Сотни файлов типа dir, reg, chr, fifo, unix, a_inode. Что это такое?
Это разные типы. dir - понятно, каталог, reg - regular file (обычный файл), a_inode - анонимный (т.е. без соответствующего ему файла на диске) inode, и т.д. Кроме первых двух это уже «внутренности» системы.
Там всякие cwd, rtd, mem, del, txt… а ближе к концу вида «0r, 1w, 2w, 3r…26u…» и т.д. Что это означает?
cwd - это current working directory (текущий каталог), rtd - корневой, mem - это файлы, отображённые в память (см. mmap), и т.д. См. man lsof
.
<число><r|w|u> (например, «0r», «1w», «26u») - это как раз то, что вас интересует. Число - дескриптор, символ - режим, в котором открыт файл: на чтение, на запись или оба.
Еще интересно что значат числа вроде «253,1» и «0,12» в графе device.
Устройства в Linux однозначно идентифицируются парой чисел major-minor. Если упрощённо, то первое - это тип устройства, а второе - его индекс. Т.е. пара 253,1 означает «устройство типа 253 номер 1».
Неужели, чтобы плеер запустил простое видео, нужно действительно открыть сотни этих файлов?
Плеер - это довольно сложная программа, которой нужно взаимодействовать как с самой собой (между разными её компонентами), так и со средой, в которой она работает: графическая система, менеджер сессии (чтобы экран не гасился во время воспроизведения) и т.д. Чтобы не плодить 100500 специфических способов общения на каждый частный случай, всё строится поверх существующего файлового и сетевого API - отсюда и множество открытых файловых дескрипторов..