Нужно определить по имени файла на какой фаловой системе он находиться, определить что за файловая система и узнать какого размера блок на этой файловой системе, что бы потом успешно эту информацию использовать с write().
C и определение принадлежности файла к /dev/hdxy
- Silos
- Неотъемлемая часть форума
- Сообщения: 287
- Зарегистрирован: 15 фев 2004, 19:04
- Откуда: Belarus, Minsk
- Контактная информация:
C и определение принадлежности файла к /dev/hdxy
Есть СИ, есть Линукс и ДЖИСИСИ 
Нужно определить по имени файла на какой фаловой системе он находиться, определить что за файловая система и узнать какого размера блок на этой файловой системе, что бы потом успешно эту информацию использовать с write().
Нужно определить по имени файла на какой фаловой системе он находиться, определить что за файловая система и узнать какого размера блок на этой файловой системе, что бы потом успешно эту информацию использовать с write().
-
michael
- Неотъемлемая часть форума
- Сообщения: 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.
А нафига тебе всё это надо?


