summaryrefslogtreecommitdiff
path: root/man3/getmntent.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/getmntent.3')
-rw-r--r--man3/getmntent.3154
1 files changed, 154 insertions, 0 deletions
diff --git a/man3/getmntent.3 b/man3/getmntent.3
new file mode 100644
index 000000000..a59f62a19
--- /dev/null
+++ b/man3/getmntent.3
@@ -0,0 +1,154 @@
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
+.\" 386BSD man pages
+.\" Modified Sat Jul 24 21:46:57 1993 by Rik Faith (faith@cs.unc.edu)
+.\" Modified 961109, 031115, aeb
+.\"
+.TH GETMNTENT 3 2003-11-15 "" "Linux Programmer's Manual"
+.SH NAME
+getmntent, setmntent, addmntent, endmntent, hasmntopt,
+getmntent_r \- get file system descriptor file entry
+.SH SYNOPSIS
+.nf
+.B #include <stdio.h>
+.B #include <mntent.h>
+.sp
+.BI "FILE *setmntent(const char *" filename ", const char *" type );
+.sp
+.BI "struct mntent *getmntent(FILE *" fp );
+.sp
+.BI "int addmntent(FILE *" fp ", const struct mntent *" mnt );
+.sp
+.BI "int endmntent(FILE *" fp );
+.sp
+.BI "char *hasmntopt(const struct mntent *" mnt ", const char *" opt );
+.sp
+/* GNU extension */
+.BR "#define _GNU_SOURCE" " /* or _SVID_SOURCE or _BSD_SOURCE */
+.B #include <mntent.h>
+.sp
+.BI "struct mntent *getmntent_r(FILE *" fp ", struct mntent *" mntbuf ,
+.BI " char *" buf ", int " buflen );
+.fi
+.SH DESCRIPTION
+These routines are used to access the file system description file
+\fI/etc/fstab\fP and the mounted file system description file
+\fI/etc/mtab\fP.
+.PP
+The \fBsetmntent()\fP function opens the file system description file
+\fIfp\fP and returns a file pointer which can be used by
+\fBgetmntent()\fP. The argument \fItype\fP is the type of access
+required and can take the same values as the \fImode\fP argument of
+.BR fopen (3).
+.PP
+The \fBgetmntent()\fP function reads the next line from the file system
+description file \fIfp\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 \fBgetmntent()\fP.
+.PP
+The \fBaddmntent()\fP function adds the mntent structure \fImnt\fP to
+the end of the open file \fIfp\fP.
+.PP
+The \fBendmntent()\fP function closes the file system description file
+\fIfp\fP.
+.PP
+The \fBhasmntopt()\fP function scans the \fImnt_opts\fP field (see below)
+of the mntent structure \fImnt\fP for a substring that matches \fIopt\fP.
+See \fI<mntent.h>\fP and
+.BR mount (8)
+for valid mount options.
+.PP
+The reentrant \fBgetmntent_r()\fP function is similar to \fBgetmntent()\fP,
+but stores the struct mount in the provided
+.RI * mntbuf
+and stores the strings pointed to by the entries in that struct
+in the provided array
+.I buf
+of size
+.IR buflen .
+.PP
+The \fImntent\fP structure is defined in \fI<mntent.h>\fP as follows:
+.sp
+.RS
+.nf
+.ne 8
+.ta 8n 16n 32n
+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 */
+};
+.ta
+.fi
+.RE
+
+Since fields in the mtab and fstab files are separated by whitespace,
+octal escapes are used to represent the four characters space (\e040),
+tab (\e011), newline (\e012) and backslash (\e134) in those files
+when they occur in one of the four strings in a mntent structure.
+The routines \fBaddmntent()\fP and \fBgetmntent()\fP will convert
+from string representation to escaped representation and back.
+.SH "RETURN VALUE"
+The \fBgetmntent()\fP and \fBgetmntent_r()\fP functions return
+a pointer to the mntent structure or NULL on failure.
+.PP
+The \fBaddmntent()\fP function returns 0 on success and 1 on failure.
+.PP
+The \fBendmntent()\fP function always returns 1.
+.PP
+The \fBhasmntopt()\fP function returns the address of the substring if
+a match is found and NULL otherwise.
+.SH FILES
+.nf
+/etc/fstab file system description file
+/etc/mtab mounted file system description file
+.fi
+.SH "CONFORMING TO"
+The non-reentrant functions are from SunOS 4.1.3.
+A routine
+.B getmntent_r()
+was introduced in HPUX 10, but it returns an int. The prototype
+shown above is glibc-only.
+LSB deprecates the functions
+.BR endhostent() ,
+.BR sethostent()
+and
+.BR setmntent() .
+.SH NOTES
+SysV also has a \fBgetmntent()\fP function but the calling sequence
+differs, and the returned structure is different. Under SysV
+.I /etc/mnttab
+is used.
+BSD 4.4 and Digital Unix have a routine \fBgetmntinfo()\fP,
+a wrapper around the system call \fBgetfsstat()\fP.
+.SH "SEE ALSO"
+.BR fopen (3),
+.BR fstab (5),
+.BR mount (8)