getmntent(3)

НАИМЕНОВАНИЕ
getmntent, setmntent, addmntent, endmntent, hasmntopt, getmntent_r - возвращают запись из файла описания файловых систем

БИБЛИОТЕКА
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 .size], int size);

    Требования макроса тестирования свойств для 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 size.

Структура 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 */
    };

Since fields in the mtab and fstab files are separated by whitespace, octal escapes are used to represent the characters space (\040), tab (\011), newline (\012), and backslash (\\) in those files when they occur in one of the four strings in a mntent structure. The routines addmntent() and getmntent() will convert from string representation to escaped representation and back. When converting from escaped representation, the sequence \134 is also converted to a backslash.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функции getmntent() и getmntent_r() возвращают указатель на структуру типа mntent или NULL при ошибке.

Функция addmntent() возвращает 0 при успешном выполнении и 1 при ошибке.

Функция endmntent() всегда возвращает 1.

Функция hasmntopt() возвращает адрес подстроки, если она была найдена, в противном случае NULL.

ФАЙЛЫ

/etc/fstab
    файл описаний файловых систем

/etc/mtab
    файл описаний смонтированных файловых систем

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
setmntent(), endmntent(), hasmntopt() | Безвредность в нитях | MT-Safe
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 also has a getmntent() function but the calling sequence differs, and the returned structure is different. Under System V /etc/mnttab is used. 4.4BSD and Digital UNIX have a routine getmntinfo(), a wrapper around the system call 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> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).