Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       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⟩.