Описание тега solaris-zones
Если я это сделаю (в Бурне-как Shell):
файл в exec 3> 4>файл&3 5> 6> файл>
Файловые дескрипторы 3 и 4, так как 4 был ДУП()
Эд из 3, доля же открыть файл описания (те же свойства, те же смещения в файле...). В то время как дескрипторы файлов 5 и 6 этой процесс находятся на другом открыть файл описания (например, они имеют собственный указатель в файле).
Теперь, как lsof
выход, все мы видим:
ЗШ 21519 Стефан 3Вт Рег 254,2 0 10505865 /домашний/Стефан/файл
ЗШ 21519 Стефан 4Вт Рег 254,2 0 10505865 /дома/Стефан/файл
ЗШ 21519 Стефан 5Вт Рег 254,2 0 10505865 /дома/Стефан/файл
ЗШ 21519 Стефан 6Вт Рег 254,2 0 10505865 /дома/Стефан/файл
Это немного лучше, как lsof +ФГ
:
ЗШ 21519 Стефан 3Вт Рег Вт,ЛГ 254,2 0 10505865 /домашний/Стефан/файл
ЗШ 21519 Стефан Рег 4Вт Вт,ЛГ 254,2 0 10505865 /домашний/Стефан/файл
ЗШ 21519 Стефан 5Вт Рег Вт,ЛГ 254,2 0 10505865 /дома/Стефан/файл
ЗШ 21519 Стефан 6Вт Рег Вт,АП,ЛГ 254,2 0 10505865 /домашний/Стефан/файл
(вот на Linux 3.16) в том, что мы видим ФД 6 имеет различные флаги, поэтому он должен быть другой открыть файл описание от ФД 3, 4 или 5, но от этого мы не можем сказать, ФД 5 на другой открытый файл описание. С -О
, мы могли бы также увидеть смещение, но опять же смещение не гарантирует то же самое открыть файл описание.
Есть ли неинтрузивного1 способ это выяснить? Внешне, или для процесса собственных файловых дескрипторов?
1. Один эвристический подход может быть, чтобы изменить флаги одного ФД с вызова fcntl()
и посмотреть, что другие файловые дескрипторы имеют свои флаги обновляются в результате, но это явно не идеал и не дурака