Provided by: manpages-ru-dev_4.18.1-1_all
ИМЯ
getmntent, setmntent, addmntent, endmntent, hasmntopt, getmntent_r - возвращают запись из файла описания файловых систем
LIBRARY
Standard C library (libc, -lc)
СИНТАКСИС
#include <stdio.h> #include <mntent.h> FILE *setmntent(const char *filename, const char *type); struct mntent *getmntent(FILE *stream); int addmntent(FILE *restrict stream, const struct mntent *restrict mnt); int endmntent(FILE *streamp); char *hasmntopt(const struct mntent *mnt, const char *opt); /* Расширение GNU */ #include <mntent.h> struct mntent *getmntent_r(FILE *restrict streamp, struct mntent *restrict mntbuf, char buf[restrict .buflen], int buflen); Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)): getmntent_r(): начиная с glibc 2.19: _DEFAULT_SOURCE в glibc 2.19 и старее: _BSD_SOURCE || _SVID_SOURCE
ОПИСАНИЕ
Эти функции используются для доступа к файлу описаний файловых систем /etc/fstab и к файлу описаний смонтированных файловых систем /etc/mtab. Функция setmntent() открывает файл описаний файловых систем filename и возвращает указатель на файл, который может быть использован getmntent(). В аргументе type указывается требуемый тип доступа и и могут задаваться те же значения, что и в аргументе mode функции fclose(3). Возвращаемый поток должен закрываться с помощью endmntent(), а не fclose(3). Функция getmntent() считывает следующую строку из файла описаний файловых систем stream и возвращает указатель на структуру, содержащую поля строки файла. Указатель ссылается на статическую область памяти, которая перезаписывается последующими вызовами getmntent(). Функция addmntent() добавляет структуру mnt типа mntent к концу открытого stream. Функция endmntent() закрывает stream, связанный с файл описаний файловых систем. Функция hashmntopt() ищет в полях mnt_opts (смотрите ниже) структуры mnt типа mntent подстроку, совпадающую с opt. Список возможных параметров монтирования приведён в <mntent.h> и mount(8). The reentrant getmntent_r() function is similar to getmntent(), but stores the mntent structure in the provided *mntbuf, and stores the strings pointed to by the entries in that structure in the provided array buf of size buflen. Структура mntent определена в <mntent.h> следующим образом: struct mntent { char *mnt_fsname; /* название смонтированной файловой системы */ char *mnt_dir; /* префикс пути к файловой системе */ char *mnt_type; /* тип монтирования (смотрите mntent.h) */ char *mnt_opts; /* параметры монтирования (смотрите mntent.h) */ int mnt_freq; /* периодичность запуска dump, в днях */ int mnt_passno; /* номер прохода при параллельном fsck */ }; Так как поля в файлах mtab и fstab разделяются пробельными символами, то для их записи в одной из четырёх строках структуры mntent используются их экранированные последовательности в восьмеричном коде: пробел (\040), табуляция (\011), новая строка (\012) и обратная косая черта (\\). Функции addmntent() и getmntent() выполнят преобразование экранированных строк и обратно. При преобразовании из экранированного представления, последовательность \134 также преобразуется в символ обратной косой черты.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функции getmntent() и getmntent_r() возвращают указатель на структуру типа mntent или NULL при ошибке. Функция addmntent() возвращает 0 при успешном выполнении и 1 при ошибке. Функция endmntent() всегда возвращает 1. Функция hasmntopt() возвращает адрес подстроки, если она была найдена, в противном случае NULL.
ФАЙЛЫ
/etc/fstab файл описаний файловых систем /etc/mtab файл описаний смонтированных файловых систем
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7). ┌─────────────────────────┬──────────────────────┬────────────────────────────────────────┐ │Интерфейс │ Атрибут │ Значение │ ├─────────────────────────┼──────────────────────┼────────────────────────────────────────┤ │setmntent(), │ Безвредность в нитях │ MT-Safe │ │endmntent(), hasmntopt() │ │ │ ├─────────────────────────┼──────────────────────┼────────────────────────────────────────┤ │getmntent() │ Безвредность в нитях │ MT-Unsafe race:mntentbuf locale │ ├─────────────────────────┼──────────────────────┼────────────────────────────────────────┤ │addmntent() │ Безвредность в нитях │ MT-Safe race:stream locale │ ├─────────────────────────┼──────────────────────┼────────────────────────────────────────┤ │getmntent_r() │ Безвредность в нитях │ MT-Safe locale │ └─────────────────────────┴──────────────────────┴────────────────────────────────────────┘
СТАНДАРТЫ
The nonreentrant functions are from SunOS 4.1.3. A routine getmntent_r() was introduced in HP-UX 10, but it returns an int. The prototype shown above is glibc-only.
ЗАМЕЧАНИЯ
В System V также имеется функция getmntent(), однако последовательность вызова и возвращаемая структура отличаются от остальных. В System V используется /etc/mnttab. В BSD 4.4 и Digital UNIX есть функция getmntinfo(), обёртка над системным вызовом getfsstat().
СМ. ТАКЖЕ
fopen(3), fstab(5), mount(8)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com> Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.