getmntent(3X)
NAME
getmntent(), getmntent_r(), setmntent(), addmntent(), endmntent(), hasmntopt() − get file system descriptor file entry
SYNOPSIS
#include <mntent.h>
FILE ∗setmntent(const char ∗path, char ∗type);
struct mntent ∗getmntent(FILE ∗stream);
int getmntent_r(
FILE *stream,
struct mntent *result,
char *buffer,
int buflen);
int addmntent(FILE ∗stream, struct mntent ∗mnt);
char ∗hasmntopt(struct mntent ∗mnt, const char ∗opt);
int endmntent(FILE ∗stream);
DESCRIPTION
These routines replace the obsolete getfsent() routines (see getfsent(3X)) for accessing the file system description file /etc/fstab. They are also used to access the mounted file system description file /etc/mnttab.
setmntent() Opens a file system description file and returns a file pointer which can then be used with getmntent(), addmntent(), or endmntent(). The type argument is the same as in fopen(3C).
getmntent() Reads the next line from stream and returns a pointer to an object with the following structure containing the broken-out fields of a line in the file-system description file, <mntent.h>. The fields have meanings described in fstab(4).
struct mntent {
char *mnt_fsname; /* file system name */
char *mnt_dir; /* file system path prefix */
char *mnt_type; /* hfs, nfs, swap, or xx */
char *mnt_opts; /* ro, suid, etc. */
int mnt_freq; /* dump frequency, in days */
int mnt_passno; /* pass number on parallel fsck */
long mnt_time; /* When file system was mounted; */
/* see mnttab(4). */
/* (0 for NFS) */
};
getmntent_r() Uses three extra parameters to provide results equivalent to those produced by getmntent(). The extra parameters are:
1. The address of a struct mntent where the result will be stored.
2. A buffer to store character strings to which fields in the struct mntent will point.
3. The length of the user-supplied buffer. A buffer length of 1025 is recommended.
addmntent() Adds the mntent structure mnt to the end of the open file stream. Note that stream must be opened for writing.
hasmntopt() Scans the mnt_opts field of the mntent structure mnt for a substring that matches opt. It returns the address of the substring if a match is found; 0 otherwise.
endmntent() Closes the file.
The following definitions are provided in <mntent.h>:
#define MNT_CHECKLIST "/etc/fstab"
#define MNT_MNTTAB "/etc/mnttab"
#define MNTMAXSTR 128 /* Max size string in mntent */
#define MNTTYPE_HFS "hfs" /* HFS file system */
#define MNTTYPE_CDFS "hfs" /* CD-ROM file system */
#define MNTTYPE_NFS "nfs" /* Network file system */
#define MNTTYPE_SWAP "swap" /* Swap device */
#define MNTTYPE_SWAPFS "swapfs" /* File system swap */
#define MNTTYPE_IGNORE "ignore" /* Ignore this entry */
#define MNTOPT_DEFAULTS "defaults" /* Use all default options */
#define MNTOPT_RO "ro" /* Read only */
#define MNTOPT_RW "rw" /* Read/write */
#define MNTOPT_SUID "suid" /* Set uid allowed */
#define MNTOPT_NOSUID "nosuid" /* No set uid allowed */
#define MNTOPT_QUOTA "quota" /* Enable disk quotas */
#define MNTOPT_NOQUOTA "noquota" /* Disable disk quotas */
The following definition is provided for device swap in <mntent.h>:
#define MNTOPT_END "end" /* swap after end of file system,
Series 300/400/700 only */
The following definitions are provided for file system swap in <mntent.h>:
#define MNTOPT_MIN "min" /* minimum file system swap */
#define MNTOPT_LIM "lim" /* maximum file system swap */
#define MNTOPT_RES "res" /* reserve space for file system */
#define MNTOPT_PRI "pri" /* file system swap priority */
NETWORKING FEATURES
NFS
The following definitions are provided in <mntent.h>:
#define MNTOPT_BG "bg" /* Retry mount in background */
#define MNTOPT_FG "fg" /* Retry mount in foreground */
#define MNTOPT_RETRY "retry" /* Number of retries allowed */
#define MNTOPT_RSIZE "rsize" /* Read buffer size in bytes */
#define MNTOPT_WSIZE "wsize" /* Write buffer size in bytes*/
#define MNTOPT_TIMEO "timeo" /* Timeout in 1/10 seconds */
#define MNTOPT_RETRANS "retrans" /* Number of retransmissions */
#define MNTOPT_PORT "port" /* Server’s IP NFS port */
#define MNTOPT_SOFT "soft" /* Soft mount */
#define MNTOPT_HARD "hard" /* Hard mount */
#define MNTOPT_INTR "intr" /* Interruptable hard mounts */
#define MNTOPT_NOINTR "nointr" /* Uninterruptable hard mounts*/
#define MNTOPT_DEVS "devs" /* Device file access allowed */
#define MNTOPT_NODEVS "nodevs" /* No device file access allowed */
RETURN VALUE
setmntent() Returns a null pointer on error.
getmntent() Returns a null pointer on error or EOF. Otherwise, getmntent() returns a pointer to a mntent structure. Some of the fields comprising a mntent structure are optional in /etc/fstab and /etc/mnttab. In the supplied structure, such missing character pointer fields are set to NULL and missing integer fields are set to −1 for mnt_freq and mnt_passno. If the integer field for mnt_time is missing, it is set to 0.
getmntent_r() Returns a -1 on error or EOF, or if the supplied buffer is of insufficient length. If the operation is successful, 0 is returned.
addmntent() Returns 1 on error.
endmntent() Returns 1.
WARNINGS
The return value for getmntent() points to static information that is overwritten in each call. Thus, getmntent() is unsafe for multi-thread applications. getmntent_r() is MT-Safe and should be used instead.
AUTHOR
addmntent(), endmntent(), getmntent(), hasmntopt(), and setmntent() were developed by The University of California, Berkeley, Sun Microsystems, Inc., and HP.
FILES
/etc/fstab
/etc/mnttab
SEE ALSO
fstab(4), getfsent(3X), mnttab(4).
Hewlett-Packard Company — HP-UX Release 10.20: July 1996