Originální popis anglicky:
getmntent, setmntent, addmntent, endmntent, hasmntopt, getmntent_r - get file
system descriptor file entry
Návod, kniha: Linux Programmer's Manual
#include <stdio.h>
#include <mntent.h>
FILE *setmntent(const char *filename, const char *type);
struct mntent *getmntent(FILE *fp);
int addmntent(FILE *fp, const struct mntent *mnt);
int endmntent(FILE *fp);
char *hasmntopt(const struct mntent *mnt, const char *opt);
/* GNU extension */
#define _GNU_SOURCE /* or _SVID_SOURCE or _BSD_SOURCE */
#include <mntent.h>
struct mntent *getmntent_r(FILE *fp, struct mntent *mntbuf,
char *buf, int buflen);
These routines are used to access the file system description file
/etc/fstab and the mounted file system description file
/etc/mtab.
The
setmntent() function opens the file system description file
fp
and returns a file pointer which can be used by
getmntent(). The
argument
type is the type of access required and can take the same
values as the
mode argument of
fopen(3).
The
getmntent() function reads the next line from the file system
description file
fp and returns a pointer to a structure containing the
broken out fields from a line in the file. The pointer points to a static area
of memory which is overwritten by subsequent calls to
getmntent().
The
addmntent() function adds the mntent structure
mnt to the end
of the open file
fp.
The
endmntent() function closes the file system description file
fp.
The
hasmntopt() function scans the
mnt_opts field (see below) of
the mntent structure
mnt for a substring that matches
opt. See
<mntent.h> and
mount(8) for valid mount options.
The reentrant
getmntent_r() function is similar to
getmntent(),
but stores the struct mount in the provided *
mntbuf and stores the
strings pointed to by the entries in that struct in the provided array
buf of size
buflen.
The
mntent structure is defined in
<mntent.h> as follows:
struct mntent {
char *mnt_fsname; /* name of mounted file system */
char *mnt_dir; /* file system path prefix */
char *mnt_type; /* mount type (see mntent.h) */
char *mnt_opts; /* mount options (see mntent.h) */
int mnt_freq; /* dump frequency in days */
int mnt_passno; /* pass number on parallel fsck */
};
Since fields in the mtab and fstab files are separated by whitespace, octal
escapes are used to represent the four characters space (\040), tab (\011),
newline (\012) and backslash (\134) 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.
The
getmntent() and
getmntent_r() functions return a pointer to
the mntent structure or NULL on failure.
The
addmntent() function returns 0 on success and 1 on failure.
The
endmntent() function always returns 1.
The
hasmntopt() function returns the address of the substring if a match
is found and NULL otherwise.
/etc/fstab file system description file
/etc/mtab mounted file system description file
The non-reentrant functions are from SunOS 4.1.3. A routine
getmntent_r()
was introduced in HPUX 10, but it returns an int. The prototype shown above is
glibc-only. LSB deprecates the functions
endhostent(),
sethostent() and
setmntent().
SysV also has a
getmntent() function but the calling sequence differs,
and the returned structure is different. Under SysV
/etc/mnttab is
used. BSD 4.4 and Digital Unix have a routine
getmntinfo(), a wrapper
around the system call
getfsstat().
fopen(3),
fstab(5),
mount(8)