Добрый день форумчанам. Нужно любыми способами (в um или в km, сисколлами в коде или утилитами) по имени файла или по дескриптору получить информацию о типе файла (файл ли это, папка, съёмный диск/флешка, смарткарта, сокет и т.д.). Желательно как можно более общим способом. stat/fstat/lstat - дают слишком мало информации (файл\папка\блочный или символьный девайс). Какие ещё есть варианты?
Одним запросом вряд ли что получится сделать. Для начала по-любому надо вызвать stat. Там есть поля st_dev и st_ino. Дальше если из userspace - смотрим /proc/devices по st_dev, там уже драйвер задействован.
lsof показывает перечень открытых процессом файловых дескрипторов (при этом всё равно сканирует /proc), это совсем не из той оперы.