GETMNTENT - Linux手册页
Linux程序员手册 第3部分
更新日期: 2019-03-06
名称
getmntent,setmntent,addmntent,endmntent,hasmntopt,getmntent_r-获取文件系统描述符文件条目
语法
#include <stdio.h> #include <mntent.h> FILE *setmntent(const char *filename, const char *type); struct mntent *getmntent(FILE *stream); int addmntent(FILE *stream, const struct mntent *mnt); int endmntent(FILE *streamp); char *hasmntopt(const struct mntent *mnt, const char *opt); /* GNU extension */ #include <mntent.h> struct mntent *getmntent_r(FILE *streamp, struct mntent *mntbuf, char *buf, int buflen);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
getmntent_r():
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE _SVID_SOURCE
说明
这些例程用于访问文件系统描述文件/ etc / fstab和已挂载的文件系统描述文件/ etc / mtab。
setmntent()函数打开文件系统描述文件filename并返回一个可由getmntent()使用的文件指针。参数类型是所需的访问类型,可以采用与fopen(3)的mode参数相同的值。返回的流应使用endmntent()而不是fclose(3)关闭。
getmntent()函数从流中读取文件系统描述文件的下一行,并返回一个指向结构的指针,该结构包含文件中一行中的细分字段。指针指向内存的静态区域,该静态区域随后被对getmntent()的调用所覆盖。
addmntent()函数将mntent结构mnt添加到开放流的末尾。
endmntent()函数关闭与文件系统描述文件关联的流。
hasmntopt()函数扫描mntent结构mnt的mnt_opts字段(请参见下文)以查找与opt匹配的子字符串。有关有效的安装选项,请参见and mount(8)。
可重入的getmntent_r()函数类似于getmntent(),但将结构装载存储在提供的* mntbuf中,并将该结构中的条目指向的字符串存储在提供的大小为buflen的数组buf中。
mntent结构定义如下:
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 */ };
由于mtab和fstab文件中的字段由空格分隔,因此八进制转义符用于表示这些文件中的字符空间(\ 040),制表符(\ 011),换行符(\ 012)和反斜杠()出现在一个mnmn结构中的四个字符串之一中。例程addmntent()和getmntent()将从字符串表示形式转换为转义的表示形式,然后返回。从转义的表示形式转换时,序列\ 134也将转换为反斜杠。
返回值
getmntent()和getmntent_r()函数返回指向mntent结构的指针,如果失败则返回NULL。
addmntent()函数成功返回0,失败返回1。
endmntent()函数始终返回1。
如果找到匹配项,则hasmntopt()函数返回子字符串的地址,否则返回NULL。
文件
- /etc/fstab
- 文件系统描述文件
- /etc/mtab
- 挂载的文件系统描述文件
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
setmntent(),endmntent(),hasmntopt() | Thread safety | MT-Safe |
getmntent() | Thread safety | MT-Unsafe race:mntentbuf locale |
addmntent() | Thread safety | MT-Safe race:stream locale |
getmntent_r() | Thread safety | MT-Safe locale |
遵循规范
不可重入功能来自SunOS 4.1.3。 HP-UX 10中引入了例程getmntent_r(),但它返回一个int。上面显示的原型仅适用于glibc。
备注
系统V也具有getmntent()函数,但是调用顺序不同,并且返回的结构也不同。在系统V下,使用/ etc / mnttab。 4.4BSD和Digital UNIX具有例程getmntinfo(),它是系统调用getfsstat()的包装器。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。