diff options
Diffstat (limited to 'man3/getmntent.3')
-rw-r--r-- | man3/getmntent.3 | 266 |
1 files changed, 266 insertions, 0 deletions
diff --git a/man3/getmntent.3 b/man3/getmntent.3 new file mode 100644 index 0000000..9bfa296 --- /dev/null +++ b/man3/getmntent.3 @@ -0,0 +1,266 @@ +'\" t +.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" 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 2023-07-20 "Linux man-pages 6.05.01" +.SH NAME +getmntent, setmntent, addmntent, endmntent, hasmntopt, +getmntent_r \- get filesystem descriptor file entry +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.B #include <stdio.h> +.B #include <mntent.h> +.PP +.BI "FILE *setmntent(const char *" filename ", const char *" type ); +.PP +.BI "struct mntent *getmntent(FILE *" stream ); +.PP +.BI "int addmntent(FILE *restrict " stream , +.BI " const struct mntent *restrict " mnt ); +.PP +.BI "int endmntent(FILE *" streamp ); +.PP +.BI "char *hasmntopt(const struct mntent *" mnt ", const char *" opt ); +.PP +/* GNU extension */ +.B #include <mntent.h> +.PP +.BI "struct mntent *getmntent_r(FILE *restrict " streamp , +.BI " struct mntent *restrict " mntbuf , +.BI " char " buf "[restrict ." buflen "], int " buflen ); +.fi +.PP +.RS -4 +Feature Test Macro Requirements for glibc (see +.BR feature_test_macros (7)): +.RE +.PP +.BR getmntent_r (): +.nf + Since glibc 2.19: + _DEFAULT_SOURCE + glibc 2.19 and earlier: + _BSD_SOURCE || _SVID_SOURCE +.fi +.SH DESCRIPTION +These routines are used to access the filesystem description file +.I /etc/fstab +and the mounted filesystem description file +.IR /etc/mtab . +.PP +The +.BR setmntent () +function opens the filesystem description file +.I filename +and returns a file pointer which can be used by +.BR getmntent (). +The argument +.I type +is the type of access +required and can take the same values as the +.I mode +argument of +.BR fopen (3). +The returned stream should be closed using +.BR endmntent () +rather than +.BR fclose (3). +.PP +The +.BR getmntent () +function reads the next line of the filesystem +description file from +.I stream +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 +.BR getmntent (). +.PP +The +.BR addmntent () +function adds the +.I mntent +structure +.I mnt +to +the end of the open +.IR stream . +.PP +The +.BR endmntent () +function closes the +.I stream +associated with the filesystem description file. +.PP +The +.BR hasmntopt () +function scans the +.I mnt_opts +field (see below) +of the +.I mntent +structure +.I mnt +for a substring that matches +.IR opt . +See +.I <mntent.h> +and +.BR mount (8) +for valid mount options. +.PP +The reentrant +.BR getmntent_r () +function is similar to +.BR getmntent (), +but stores the +.I mntent +structure +in the provided +.IR *mntbuf , +and stores the strings pointed to by the entries in that structure +in the provided array +.I buf +of size +.IR buflen . +.PP +The +.I mntent +structure is defined in +.I <mntent.h> +as follows: +.PP +.in +4n +.EX +struct mntent { + char *mnt_fsname; /* name of mounted filesystem */ + char *mnt_dir; /* filesystem 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 */ +}; +.EE +.in +.PP +Since fields in the mtab and fstab files are separated by whitespace, +octal escapes are used to represent the characters space (\e040), +tab (\e011), newline (\e012), and backslash (\e\e) in those files +when they occur in one of the four strings in a +.I mntent +structure. +The routines +.BR addmntent () +and +.BR getmntent () +will convert +from string representation to escaped representation and back. +When converting from escaped representation, the sequence \e134 is +also converted to a backslash. +.SH RETURN VALUE +The +.BR getmntent () +and +.BR getmntent_r () +functions return +a pointer to the +.I mntent +structure or NULL on failure. +.PP +The +.BR addmntent () +function returns 0 on success and 1 on failure. +.PP +The +.BR endmntent () +function always returns 1. +.PP +The +.BR hasmntopt () +function returns the address of the substring if +a match is found and NULL otherwise. +.SH FILES +.TP +.I /etc/fstab +filesystem description file +.TP +.I /etc/mtab +mounted filesystem description file +.SH ATTRIBUTES +For an explanation of the terms used in this section, see +.BR attributes (7). +.TS +allbox; +lb lb lbx +l l l. +Interface Attribute Value +T{ +.na +.nh +.BR setmntent (), +.BR endmntent (), +.BR hasmntopt () +T} Thread safety MT-Safe +T{ +.na +.nh +.BR getmntent () +T} Thread safety T{ +.na +.nh +MT-Unsafe race:mntentbuf locale +T} +T{ +.na +.nh +.BR addmntent () +T} Thread safety T{ +.na +.nh +MT-Safe race:stream locale +T} +T{ +.na +.nh +.BR getmntent_r () +T} Thread safety MT-Safe locale +.TE +.sp 1 +.SH STANDARDS +None. +.SH HISTORY +The nonreentrant functions are from SunOS 4.1.3. +A routine +.BR getmntent_r () +was introduced in HP-UX 10, but it returns an +.IR int . +The prototype shown above is glibc-only. +.PP +System V also has a +.BR getmntent () +function but the calling sequence +differs, and the returned structure is different. +Under System V +.I /etc/mnttab +is used. +4.4BSD and Digital UNIX have a routine +.BR \%getmntinfo (), +a wrapper around the system call +.BR getfsstat (). +.SH SEE ALSO +.BR fopen (3), +.BR fstab (5), +.BR mount (8) |