]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/getmntent.3
time.1, atexit.3, bsearch.3, dlopen.3, envz_add.3, errno.3, fmtmsg.3, getgrent_r...
[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.\"
e8418d6d 30.TH GETMNTENT 3 2009-09-15 "" "Linux Programmer's Manual"
fea681da
MK
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 */
fea681da
MK
50.B #include <mntent.h>
51.sp
52.BI "struct mntent *getmntent_r(FILE *" fp ", struct mntent *" mntbuf ,
53.BI " char *" buf ", int " buflen );
54.fi
cc4615cc
MK
55.sp
56.in -4n
57Feature Test Macro Requirements for glibc (see
58.BR feature_test_macros (7)):
59.in
60.sp
cd74b428 61.BR getmntent_r ():
cc4615cc 62_BSD_SOURCE || _SVID_SOURCE
fea681da 63.SH DESCRIPTION
c13182ef 64These routines are used to access the file system description file
fea681da
MK
65\fI/etc/fstab\fP and the mounted file system description file
66\fI/etc/mtab\fP.
67.PP
60a90ecd
MK
68The
69.BR setmntent ()
70function opens the file system description file
e8418d6d 71\fIfilename\fP and returns a file pointer which can be used by
60a90ecd 72.BR getmntent ().
c13182ef
MK
73The argument \fItype\fP is the type of access
74required and can take the same values as the \fImode\fP argument of
fea681da
MK
75.BR fopen (3).
76.PP
60a90ecd
MK
77The
78.BR getmntent ()
79function reads the next line from the file system
fea681da 80description file \fIfp\fP and returns a pointer to a structure
c13182ef
MK
81containing the broken out fields from a line in the file.
82The pointer
fea681da 83points to a static area of memory which is overwritten by subsequent
60a90ecd
MK
84calls to
85.BR getmntent ().
fea681da 86.PP
60a90ecd
MK
87The
88.BR addmntent ()
c3022783
MK
89function adds the
90.I mntent
91structure \fImnt\fP to
fea681da
MK
92the end of the open file \fIfp\fP.
93.PP
60a90ecd
MK
94The
95.BR endmntent ()
96function closes the file system description file
fea681da
MK
97\fIfp\fP.
98.PP
60a90ecd
MK
99The
100.BR hasmntopt ()
101function scans the \fImnt_opts\fP field (see below)
c3022783
MK
102of the
103.I mntent
104structure \fImnt\fP for a substring that matches \fIopt\fP.
fea681da
MK
105See \fI<mntent.h>\fP and
106.BR mount (8)
107for valid mount options.
108.PP
60a90ecd
MK
109The reentrant
110.BR getmntent_r ()
111function is similar to
112.BR getmntent (),
0c2ec4f1 113but stores the \fIstruct mount\fP in the provided
bd9b2a9c 114.I *mntbuf
fea681da
MK
115and stores the strings pointed to by the entries in that struct
116in the provided array
117.I buf
118of size
119.IR buflen .
120.PP
121The \fImntent\fP structure is defined in \fI<mntent.h>\fP as follows:
122.sp
a08ea57c 123.in +4n
fea681da 124.nf
fea681da 125struct mntent {
7295b7ed
MK
126 char *mnt_fsname; /* name of mounted file system */
127 char *mnt_dir; /* file system path prefix */
128 char *mnt_type; /* mount type (see mntent.h) */
129 char *mnt_opts; /* mount options (see mntent.h) */
130 int mnt_freq; /* dump frequency in days */
131 int mnt_passno; /* pass number on parallel fsck */
fea681da 132};
fea681da 133.fi
a08ea57c 134.in
fea681da
MK
135
136Since fields in the mtab and fstab files are separated by whitespace,
9f8e673e
MK
137octal escapes are used to represent the four characters space (\\040),
138tab (\\011), newline (\\012) and backslash (\\134) in those files
c3022783
MK
139when they occur in one of the four strings in a
140.I mntent
141structure.
60a90ecd
MK
142The routines
143.BR addmntent ()
144and
145.BR getmntent ()
146will convert
fea681da
MK
147from string representation to escaped representation and back.
148.SH "RETURN VALUE"
60a90ecd
MK
149The
150.BR getmntent ()
151and
152.BR getmntent_r ()
153functions return
c3022783
MK
154a pointer to the
155.I mntent
156structure or NULL on failure.
fea681da 157.PP
60a90ecd
MK
158The
159.BR addmntent ()
160function returns 0 on success and 1 on failure.
fea681da 161.PP
60a90ecd
MK
162The
163.BR endmntent ()
164function always returns 1.
fea681da 165.PP
60a90ecd
MK
166The
167.BR hasmntopt ()
168function returns the address of the substring if
fea681da
MK
169a match is found and NULL otherwise.
170.SH FILES
171.nf
172/etc/fstab file system description file
173/etc/mtab mounted file system description file
174.fi
175.SH "CONFORMING TO"
54d75d6c 176The nonreentrant functions are from SunOS 4.1.3.
fea681da 177A routine
63aa9df0 178.BR getmntent_r ()
c13182ef 179was introduced in HP-UX 10, but it returns an int.
68e1685c 180The prototype shown above is glibc-only.
fea681da 181.SH NOTES
60a90ecd
MK
182System V also has a
183.BR getmntent ()
184function but the calling sequence
c13182ef
MK
185differs, and the returned structure is different.
186Under System V
fea681da
MK
187.I /etc/mnttab
188is used.
008f1ecc 1894.4BSD and Digital UNIX have a routine
60a90ecd
MK
190.BR getmntinfo (),
191a wrapper around the system call
192.BR getfsstat ().
fea681da
MK
193.SH "SEE ALSO"
194.BR fopen (3),
195.BR fstab (5),
196.BR mount (8)