Other Alias
getfsent, getfsfile, setfsent, endfsent
ОБЗОР
#include <fstab.h>
void endfsent(void);
struct fstab *getfsent(void);
struct fstab *getfsfile(const char *mount_point);
struct fstab *getfsspec(const char *special_file);
int setfsent(void);
ОПИСАНИЕ
Эти функции читают файл /etc/fstab. Структура struct fstab определена
следующим образом:
struct fstab { char *fs_spec; /* имя блочного устройства */ char *fs_file; /* точка монтирования */ char *fs_vfstype; /* тип файловой системы */ char *fs_mntops; /* параметры монтирования */ const char *fs_type; /* параметр rw/rq/ro/sw/xx */ int fs_freq; /* периодичность запуска dump, в днях */ int fs_passno; /* номер прохода при параллельном dump */ };
Здесь поле fs_type содержит (в системах *BSD) одну из пяти строк: «rw», «rq», «ro», «sw», «xx» (чтение-запись, чтение-запись с квотами, только-чтение, подкачка, игнорировать).
Функция setfsent() открывает файл при необходимости и устанавливает указатель на первую строку.
Функция getfsent() обрабатывает следующую строку из файла (открыв файл, если требуется).
Функция endfsent() закрывает файл, если требуется.
Функция getfsspec() ищет с начала файла запись, для которой поле fs_spec соответствует аргументу special_file и возвращает её.
Функция getfsfile() ищет с начала файла запись, для которой поле fs_file соответствует аргументу mount_point и возвращает её.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функции getfsent(), getfsfile() и
getfsspec() возвращают указатель на структуру struct fstab, а
setfsent() возвращает 1. При ошибке или обнаружении конца файла эти
функции возвращают, соответственно, NULL или 0.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
endfsent(),
setfsent()
безвредность в потоках: небезопасно (MT-Unsafe race:fsent)
getfsent(),
getfsspec(),
getfsfile()
безвредность в потоках: небезопасно (MT-Unsafe race:fsent locale)
СООТВЕТСТВИЕ СТАНДАРТАМ
Эти функции не включены в POSIX.1. Они имеются в некоторых операционных
системах, например *BSD, SunOS, Digital UNIX, AIX (в котором также есть
getfstype()). В HP-UX есть функции с тем же именем, но вместо структуры
struct fstab они используют структуру struct checklist, и вызовы этих
функций устарели, они заменены на getmntent(3).
ЗАМЕЧАНИЯ
Эти функции нельзя использовать в нескольких нитях одновременно.
Так как Linux позволяет монтировать специальное блочное устройство в несколько разных точек, а также так как несколько устройств могут иметь одну точку монтирования, то неясно, будет ли результат (первая запись), возвращенный функциями getfsfile() и getfsspec() именно тем, что и ожидался. Поэтому эти две функции не подходят для использования под Linux.