Страница 1 из 1

C и определение принадлежности файла к /dev/hdxy

Добавлено: 27 апр 2006, 18:31
Silos
Есть СИ, есть Линукс и ДЖИСИСИ :)
Нужно определить по имени файла на какой фаловой системе он находиться, определить что за файловая система и узнать какого размера блок на этой файловой системе, что бы потом успешно эту информацию использовать с write().

Добавлено: 28 апр 2006, 03:09
Gnida
man fdisk & man mount
или так не юниксвай?

Добавлено: 28 апр 2006, 07:24
michael
В структуре stat, которую возвращает fstat(2) есть поле st_blksize - размер блока ввода-вывода для файловой системы, где находится заданный файл.
Определение девайса и файловой системы можно сделать через анализ /proc/mounts.
В структуре stat также есть поле st_dev типа dev_t, уникальное для каждой примонтированой файловой системы. Функция blkid_devno_to_devname (заголовочный файл <blkid>, библиотека blkid) возвращает имя устройства по его dev_t. Но она не работает, если файловая система не размещена на устройстве (procfs, tmpfs и т. д.). В общем, лучший способ - это анализ /proc/mounts.

А нафига тебе всё это надо?

Добавлено: 28 апр 2006, 08:05
Silos
Do:mo arigato: gozaimasu.
michael писал(а):А нафига тебе всё это надо?
Сам толком не знаю :twisted: