LINUX.ORG.RU

Как найти файл по его дескриптору?

 ,


0

1

Всем привет, заинтересовал вот вопрос - как найти файл зная его дескриптор? Например вот хочу найти файл сокета мозиллы: Делаю:

lsof -i TCP | grep firefox

Получаю вывод:

PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

17866 some 40u IPv4 499775 0t0 TCP 192.168.1.50:54134->44.241.185.165:443 (ESTABLISHED

Как видно файловый дескриптор созданного сокета имеет номер 40u, Как по этому дескриптору найти где расположен сам файл сокета и его название?



Последнее исправление: Pinkbyte (всего исправлений: 3)

Дескриптор сокета создаётся вызовом socket(), и он не связан ни с какими файлами.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Блин ну может и глупо конечно но я думал согласно философии *nix систем «Все в системе является файлом» то и созданный сокет это тоже файл который гдето лежит и его можно пощупать

barmaley99
() автор топика
Ответ на: комментарий от barmaley99

Есть такой файл. Я думаю, что он тут:

/proc/17866/fd/40

Точнее, это линк. «Пощупать» его не получится.

Oleg_Iu
()
Ответ на: комментарий от barmaley99

пришла пора перейти с фейлософии на математику и физику

anonymous
()
Ответ на: комментарий от barmaley99

Эта идею принципиально невозможно возвести в абсолют, где-то должен быть лимит. Так что хотя многие объекты и представлены в виде файловых дескрипторов, способы получения дескрипторов могут быть разные.

В Plan 9 пошли немного дальше, и там для создания сокета нужно открывать специальный псевдо-файл. Отдельного системного вызова для создания сокета просто не предусмотрено. Но даже там есть лимиты, дальше которых авторы не пошли, потому что интерфейс работы с файлами не позволяет уверенно покрыть все нужные операции.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.