Provided by: manpages-pl-dev_4.15.0-9_all bug

NAZWA

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

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 *restrict buf, 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)

       Wielodostępowa  funkcja  getmntent_r()  jest  podobna  do  getmntent(),  z  tą  różnicą że
       przechowuje struct mount w przekazanym *mntbuf i przechowuje łańcuchy znaków wskazujące na
       wpisy w tej strukturze w przekazanej tablicy buf o rozmiarze 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).

       ┌─────────────────────────┬────────────────────────┬──────────────────────────────────────┐
       │InterfejsAtrybutWartość                              │
       ├─────────────────────────┼────────────────────────┼──────────────────────────────────────┤
       │setmntent(),             │ Bezpieczeństwo wątkowe │ MT-Safe                              │
       │endmntent(), hasmntopt() │                        │                                      │
       ├─────────────────────────┼────────────────────────┼──────────────────────────────────────┤
       │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                       │
       └─────────────────────────┴────────────────────────┴──────────────────────────────────────┘

ZGODNE Z

       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)

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  5.13  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania  błędów oraz najnowszą wersję oryginału można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika  są:  Andrzej  Krzysztofowicz
       <ankry@green.mf.pg.gda.pl>,   Robert   Luberda   <robert@debian.org>   i   Michał   Kułach
       <michal.kulach@gmail.com>

       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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.

                                         22 marca 2021 r.                            GETMNTENT(3)