Есть СИ, есть Линукс и ДЖИСИСИ
Нужно определить по имени файла на какой фаловой системе он находиться, определить что за файловая система и узнать какого размера блок на этой файловой системе, что бы потом успешно эту информацию использовать с write().
C и определение принадлежности файла к /dev/hdxy
-
- Неотъемлемая часть форума
- Сообщения: 434
- Зарегистрирован: 12 апр 2004, 11:00
- Откуда: г. Владивосток
- Контактная информация:
В структуре stat, которую возвращает fstat(2) есть поле st_blksize - размер блока ввода-вывода для файловой системы, где находится заданный файл.
Определение девайса и файловой системы можно сделать через анализ /proc/mounts.
В структуре stat также есть поле st_dev типа dev_t, уникальное для каждой примонтированой файловой системы. Функция blkid_devno_to_devname (заголовочный файл <blkid>, библиотека blkid) возвращает имя устройства по его dev_t. Но она не работает, если файловая система не размещена на устройстве (procfs, tmpfs и т. д.). В общем, лучший способ - это анализ /proc/mounts.
А нафига тебе всё это надо?
Определение девайса и файловой системы можно сделать через анализ /proc/mounts.
В структуре stat также есть поле st_dev типа dev_t, уникальное для каждой примонтированой файловой системы. Функция blkid_devno_to_devname (заголовочный файл <blkid>, библиотека blkid) возвращает имя устройства по его dev_t. Но она не работает, если файловая система не размещена на устройстве (procfs, tmpfs и т. д.). В общем, лучший способ - это анализ /proc/mounts.
А нафига тебе всё это надо?