Я пытаюсь найти, какие элементы struct fdtable
или struct file
] позволит мне определить, является ли открытый файл сокетом или каналом.
единственный путь, который я могу найти, это:
struct file f ....;
f.path->mnt->mnt_devname
Это возвращает имя устройства в точке монтирования, все сокеты/каналы, по-видимому, принадлежат sockfs или pipefs соответственно.
Есть ли более быстрый способ проверить, является ли открытый файл сокетом или каналом, используя другой член файла структуры или fdtable?
Примечание. Я использую определения ядра из версии 2.6.24