NAZWA

getmntent, setmntent, addmntent, endmntent, hasmntopt, getmntent_r - odczytanie wpisu z pliku deskryptorów systemów plików

BIBLIOTEKA

Standardowa biblioteka C ( libc, -lc)

SKŁADNIA

#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);
/* rozszerzenie GNU */
#include <mntent.h>
struct mntent *getmntent_r(FILE *restrict streamp,
              struct mntent *restrict mntbuf,
              char buf[restrict .buflen], int buflen);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):
getmntent_r():
    Od glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 i wcześniejsze:
        _BSD_SOURCE || _SVID_SOURCE

OPIS

Funkcje te służą do udostępniania informacji z pliku opisującego systemy plików /etc/fstab oraz z pliku opisującego zamontowane systemy plików /etc/mtab.
Funkcja setmntent() otwiera plik opisujący systemy plików, filename, i zwraca wskaźnik do pliku, którym może się posłużyć getmntent(). Argument type jest żądanym rodzajem dostępu i może przyjmować takie same wartości, jak argument mode funkcji fopen(3). Zwrócony strumień należy zamknąć za pomocą endmntent(), a nie za pomocą flose(3).
Funkcja getmntent() odczytuje następny wiersz pliku opisującego systemy plików z stream i zwraca wskaźnik do struktury zawierającej pola powstałe z rozłożenia linii pliku. Wskaźnik ten jest wskaźnikiem do statycznego obszaru pamięci, który jest nadpisywany podczas następnego wywołania getmntent().
Funkcja addmntent() dodaje strukturę mnt typu mntent na końcu otwartego stream.
Funkcja endmntent() zamyka stream związany z plikiem opisującym system plików.
Funkcja hasmntopt() przegląda pole mnt_opts (zobacz poniżej) w mnt typu struktury mntent w poszukiwaniu podłańcuchów pasujących do opt. Prawidłowe opcje montowania opisane są w <mntent.h> i 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.
Struktura mntent jest zdefiniowana w <mntent.h> następująco:

struct mntent {
    char *mnt_fsname;   /* nazwa zamontowanego systemu plików */
    char *mnt_dir;      /* prefiks ścieżki systemu plików */
    char *mnt_type;     /* rodzaj montowania (patrz mntent.h) */
    char *mnt_opts;     /* opcje montowania (patrz mntent.h) */
    int   mnt_freq;     /* częstotliwość zrzucania w dniach */
    int   mnt_passno;   /* numer przebiegu równoległego fsck */
};

Ponieważ pola w plikach mtab i fstab są rozdzielone białymi znakami, ósemkowe znaki cytowania są używane do reprezentowania następujących znaków: spacji ("\040"), tabulacji ("\011"), nowej linii ("\012") oraz odwrotnego ukośnika ("\\"), jeśli występują w jednym z czterech łańcuchów w strukturze mntent. Procedury addmntent() i getmntent() skonwertują normalną reprezentację łańcucha znaków na cytowaną i z powrotem. Podczas konwertowania z cytowanej reprezentacji na normalną ciąg "\134" także jest zamieniany na znak odwrotnego ukośnika.

WARTOŚĆ ZWRACANA

Funkcja getmntent() i getmntent_r() zwracają wskaźnik do struktury mntent albo NULL w przypadku błędu.
Funkcja addmntent() zwraca 0 po pomyślnym zakończeniu, a 1 w przypadku błędu.
Funkcja endmntent() zawsze zwraca 1.
Funkcja hasmntopt() zwraca adres podłańcucha, gdy zostanie on znaleziony, a NULL w przeciwnym przypadku.

PLIKI

/etc/fstab
plik opisujący systemy plików
/etc/mtab
plik opisujący zamontowane systemy plików

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs Atrybut Wartość
setmntent(), endmntent(), hasmntopt() Bezpieczeństwo wątkowe MT-Safe
getmntent() Bezpieczeństwo wątkowe MT-Unsafe race:mntentbuf locale
addmntent() Bezpieczeństwo wątkowe MT-Safe race:stream locale
getmntent_r() Bezpieczeństwo wątkowe MT-Safe locale
 

STANDARDY

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.

UWAGI

System V również zawiera funkcję getmntent(), ale inna jest sekwencja wywołująca i zwraca ona inną strukturę. Pod Systemem V używa się /etc/mnttab. 4.4BSD i Digital UNIX zawierają funkcję getmntinfo(), otulającą funkcję systemową getfsstat().

ZOBACZ TAKŻE

fopen(3), fstab(5), mount(8)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <[email protected]>, Robert Luberda <[email protected]> i Michał Kułach <[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej [email protected]

Recommended readings

Pages related to endmntent you should read also: