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

Все о программировании под *nix
Аватара пользователя
Silos
Неотъемлемая часть форума
Сообщения: 287
Зарегистрирован: 15 фев 2004, 19:04
Откуда: Belarus, Minsk
Контактная информация:

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

Сообщение Silos »

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

Gnida
Неотъемлемая часть форума
Сообщения: 346
Зарегистрирован: 04 апр 2004, 22:38

Сообщение Gnida »

man fdisk & man mount
или так не юниксвай?
С опытом ошибки не изчезают , а умнеют

michael
Неотъемлемая часть форума
Сообщения: 434
Зарегистрирован: 12 апр 2004, 11:00
Откуда: г. Владивосток
Контактная информация:

Сообщение 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.

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

Аватара пользователя
Silos
Неотъемлемая часть форума
Сообщения: 287
Зарегистрирован: 15 фев 2004, 19:04
Откуда: Belarus, Minsk
Контактная информация:

Сообщение Silos »

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

Ответить