lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gnome-pan 28597 murat 18u IPv4 2907888 0t0 TCP ....
gnome-pan 28597 murat 19u IPv4 2907903 0t0 TCP ....
dropbox 28624 murat 18u IPv4 2755213 0t0 TCP ...
Когда я перечисляю открытые файлы с ключом -i, я обнаружил, что некоторые процессы имеют одинаковые fd. Например, вывод выше, у pid 28597 и 28624 одинаковые fd. .Что является причиной этого ? Как они могут достичь той же области и почему? Также в чем смысл тебя (18u)? Некоторые fd заканчиваются на w.
Это означает, что эти процессы могут достигать одного и того же пространства памяти.
blockquote>Почему они хотят достичь общего пространства памяти? Ответ прост - разговаривать друг с другом!
В вашем случае
dropbox
разговаривает сgnome-panel
, который предоставляет значок состояния Dropbox.В руководстве libc говорится следующее:
Основное использование дублирования файлового дескриптора - реализация перенаправления ввода или вывода: то есть, чтобы изменить файл или канал, которому соответствует определенный дескриптор файла.
blockquote>Флаг
u
просто означает, что FD предназначен для чтения-записи;w
означает только запись,r
означает только чтение.
Файловые дескрипторы определены в пространстве имен для каждого процесса. Они не являются уникальными для всей системы. Два показанных процесса не обращаются к одному и тому же файлу, о чем свидетельствует столбец DEVICE
, который, в этом случае, скорее всего, показывает имя устройства вашего сокета TCP.