Я предполагаю, использование большей части пейджера является хорошей идеей. Этот пейджер очень мощен, но основная функция меня - отображение цветных страниц справочника. Эта функция улучшает восприятие простого текста и поиск простоты необходимой информации.
Посмотрите на приложенный снимок экрана, текст выглядит очень хорошим, не так ли?
Дескриптор файла, т.е. 4
в Вашем примере, индекс в определенную для процесса таблицу дескрипторов файлов, не открытая таблица файлов. Сама запись дескриптора файла содержит индекс к записи в глобальной открытой таблице файлов ядра, а также флаги дескриптора файла.
Каждый процесс имеет свою собственную таблицу дескрипторов файлов. Дескриптор файла 4 в точках процесса 1234 года в обрабатывает таблицу 1234. Дескриптор файла 4 в процессе 5 678 точек в обрабатывает таблицу 5678. Случай, с которым необходимо быть знакомы, является дескрипторами файлов 0, 1 и 2, которые для каждого процесса являются стандартным входом, стандартным выводом и стандартной погрешностью, указывая везде, где они были перенаправлены к.
Процесс может открыть тот же файл несколько раз. Это может произойти по совпадению, например, когда стандартный вывод процесса и стандартная погрешность перенаправляются к тому же терминалу или в тот же файл. Базовые записи таблицы файлов (например, Linux struct file
) несите больше, чем информация о файле; они также содержат вводные режимы (например, читайте или запишите), и другое состояние (такое как флаги, например, замыкаться-должностное-лицо). Например, процессу можно было бы открыть терминал для чтения только на дескрипторе файла 0 и том же самом терминале, открытом для записи только на дескрипторе файла 2. Записи таблиц файлов также содержат положение процесса в файле; процесс мог бы хотеть lseek
к двум различным позициям в том же файле, и использование - также dup
получить два дескриптора в тот файл.
dup
делает точно, что это говорит относительно олова: и получающиеся дескрипторы указывают на ту же запись таблицы файлов и таким образом совместно используют то же смещение. Для получения 2 различных записей таблицы файлов я вполне уверен, Вы должны open
файл дважды.
– jw013
17.12.2011, 03:32
Каждый процесс имеет свою собственную таблицу дескрипторов файлов.Это все.
Это очень хорошо, описал в Сетевом программировании UNIX Richard Stevens, если требуется изучить это глубоко.
sudo
---------121 таблица дескрипторов файлов--------147455---
– Michał Šrajer
06.01.2012, 01:49
Разве дополнительный уровень абстракции не решил бы Вашу проблему? ("Все проблемы в программировании могут быть решены дополнительным уровнем абстракции" - некоторый мудрый старик). Таким образом, маленькое целое число в каждом процессе заканчивается как индекс в массив для каждого процесса индексов пространства ядра в "Открытую Таблицу файлов".