]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/getmntent.3
ffix
[thirdparty/man-pages.git] / man3 / getmntent.3
CommitLineData
fea681da
MK
1.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
2.\"
3.\" Permission is granted to make and distribute verbatim copies of this
4.\" manual provided the copyright notice and this permission notice are
5.\" preserved on all copies.
6.\"
7.\" Permission is granted to copy and distribute modified versions of this
8.\" manual under the conditions for verbatim copying, provided that the
9.\" entire resulting derived work is distributed under the terms of a
10.\" permission notice identical to this one.
c13182ef 11.\"
fea681da
MK
12.\" Since the Linux kernel and libraries are constantly changing, this
13.\" manual page may be incorrect or out-of-date. The author(s) assume no
14.\" responsibility for errors or omissions, or for damages resulting from
15.\" the use of the information contained herein. The author(s) may not
16.\" have taken the same level of care in the production of this manual,
17.\" which is licensed free of charge, as they might when working
18.\" professionally.
c13182ef 19.\"
fea681da
MK
20.\" Formatted or processed versions of this manual, if unaccompanied by
21.\" the source, must acknowledge the copyright and authors of this work.
22.\"
23.\" References consulted:
24.\" Linux libc source code
25.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
26.\" 386BSD man pages
27.\" Modified Sat Jul 24 21:46:57 1993 by Rik Faith (faith@cs.unc.edu)
28.\" Modified 961109, 031115, aeb
29.\"
30.TH GETMNTENT 3 2003-11-15 "" "Linux Programmer's Manual"
31.SH NAME
32getmntent, setmntent, addmntent, endmntent, hasmntopt,
33getmntent_r \- get file system descriptor file entry
34.SH SYNOPSIS
35.nf
36.B #include <stdio.h>
37.B #include <mntent.h>
38.sp
39.BI "FILE *setmntent(const char *" filename ", const char *" type );
40.sp
41.BI "struct mntent *getmntent(FILE *" fp );
42.sp
43.BI "int addmntent(FILE *" fp ", const struct mntent *" mnt );
44.sp
45.BI "int endmntent(FILE *" fp );
46.sp
47.BI "char *hasmntopt(const struct mntent *" mnt ", const char *" opt );
48.sp
49/* GNU extension */
c10859eb 50.BR "#define _GNU_SOURCE" " /* or _SVID_SOURCE or _BSD_SOURCE */"
fea681da
MK
51.B #include <mntent.h>
52.sp
53.BI "struct mntent *getmntent_r(FILE *" fp ", struct mntent *" mntbuf ,
54.BI " char *" buf ", int " buflen );
55.fi
56.SH DESCRIPTION
c13182ef 57These routines are used to access the file system description file
fea681da
MK
58\fI/etc/fstab\fP and the mounted file system description file
59\fI/etc/mtab\fP.
60.PP
60a90ecd
MK
61The
62.BR setmntent ()
63function opens the file system description file
fea681da 64\fIfp\fP and returns a file pointer which can be used by
60a90ecd 65.BR getmntent ().
c13182ef
MK
66The argument \fItype\fP is the type of access
67required and can take the same values as the \fImode\fP argument of
fea681da
MK
68.BR fopen (3).
69.PP
60a90ecd
MK
70The
71.BR getmntent ()
72function reads the next line from the file system
fea681da 73description file \fIfp\fP and returns a pointer to a structure
c13182ef
MK
74containing the broken out fields from a line in the file.
75The pointer
fea681da 76points to a static area of memory which is overwritten by subsequent
60a90ecd
MK
77calls to
78.BR getmntent ().
fea681da 79.PP
60a90ecd
MK
80The
81.BR addmntent ()
82function adds the mntent structure \fImnt\fP to
fea681da
MK
83the end of the open file \fIfp\fP.
84.PP
60a90ecd
MK
85The
86.BR endmntent ()
87function closes the file system description file
fea681da
MK
88\fIfp\fP.
89.PP
60a90ecd
MK
90The
91.BR hasmntopt ()
92function scans the \fImnt_opts\fP field (see below)
fea681da
MK
93of the mntent structure \fImnt\fP for a substring that matches \fIopt\fP.
94See \fI<mntent.h>\fP and
95.BR mount (8)
96for valid mount options.
97.PP
60a90ecd
MK
98The reentrant
99.BR getmntent_r ()
100function is similar to
101.BR getmntent (),
0c2ec4f1 102but stores the \fIstruct mount\fP in the provided
fea681da
MK
103.RI * mntbuf
104and stores the strings pointed to by the entries in that struct
105in the provided array
106.I buf
107of size
108.IR buflen .
109.PP
110The \fImntent\fP structure is defined in \fI<mntent.h>\fP as follows:
111.sp
7295b7ed 112.in +0.5i
fea681da 113.nf
fea681da 114struct mntent {
7295b7ed
MK
115 char *mnt_fsname; /* name of mounted file system */
116 char *mnt_dir; /* file system path prefix */
117 char *mnt_type; /* mount type (see mntent.h) */
118 char *mnt_opts; /* mount options (see mntent.h) */
119 int mnt_freq; /* dump frequency in days */
120 int mnt_passno; /* pass number on parallel fsck */
fea681da 121};
fea681da 122.fi
7295b7ed 123.in -0.5i
fea681da
MK
124
125Since fields in the mtab and fstab files are separated by whitespace,
126octal escapes are used to represent the four characters space (\e040),
127tab (\e011), newline (\e012) and backslash (\e134) in those files
128when they occur in one of the four strings in a mntent structure.
60a90ecd
MK
129The routines
130.BR addmntent ()
131and
132.BR getmntent ()
133will convert
fea681da
MK
134from string representation to escaped representation and back.
135.SH "RETURN VALUE"
60a90ecd
MK
136The
137.BR getmntent ()
138and
139.BR getmntent_r ()
140functions return
fea681da
MK
141a pointer to the mntent structure or NULL on failure.
142.PP
60a90ecd
MK
143The
144.BR addmntent ()
145function returns 0 on success and 1 on failure.
fea681da 146.PP
60a90ecd
MK
147The
148.BR endmntent ()
149function always returns 1.
fea681da 150.PP
60a90ecd
MK
151The
152.BR hasmntopt ()
153function returns the address of the substring if
fea681da
MK
154a match is found and NULL otherwise.
155.SH FILES
156.nf
157/etc/fstab file system description file
158/etc/mtab mounted file system description file
159.fi
160.SH "CONFORMING TO"
161The non-reentrant functions are from SunOS 4.1.3.
162A routine
63aa9df0 163.BR getmntent_r ()
c13182ef 164was introduced in HP-UX 10, but it returns an int.
68e1685c 165The prototype shown above is glibc-only.
fea681da 166LSB deprecates the functions
63aa9df0
MK
167.BR endhostent (),
168.BR sethostent ()
fea681da 169and
63aa9df0 170.BR setmntent ().
fea681da 171.SH NOTES
60a90ecd
MK
172System V also has a
173.BR getmntent ()
174function but the calling sequence
c13182ef
MK
175differs, and the returned structure is different.
176Under System V
fea681da
MK
177.I /etc/mnttab
178is used.
60a90ecd
MK
1794.4BSD and Digital Unix have a routine
180.BR getmntinfo (),
181a wrapper around the system call
182.BR getfsstat ().
fea681da
MK
183.SH "SEE ALSO"
184.BR fopen (3),
185.BR fstab (5),
0a90178c 186.BR feature_test_macros (7),
fea681da 187.BR mount (8)