我见过类似的东西
setmntent(MOUNTED, "r");
有什么意义MOUNTED
?是关键字吗?宏?
在阅读了 的手册页后setmntent
,我认为第一个参数setmntent
是file*
which could be /etc/mtab
or /proc/mounts
。但是这个MOUNTED
词让我很困惑。
有什么帮助吗?
它们是mmtent.h中的宏。
/* File listing canonical interesting mount points. */
#define MNTTAB _PATH_MNTTAB /* Deprecated alias. */
/* File listing currently active mount points. */
#define MOUNTED _PATH_MOUNTED /* Deprecated alias. */
定义了 struct mntent 类型和宏 MNTTAB、MOUNTED、MNTTYPE_ 、MNTOPT_,并声明了函数 setmntent、getmntent、getmntent_r、addmntent、endmntent、hasmntopt。
宏 FSTAB、MNTTAB 和 MOUNTED 定义了一个路径,但它们是一个不推荐使用的别名,_PATH_MNTTAB
应该_PATH_MOUNTED
使用它们。
#define _PATH_FSTAB "/etc/fstab"
(fstab.h)
#define _PATH_MOUNTED "/etc/mtab"
(即glibc的paths.h)
见安装信息。
setmntent()
的第一个参数是char *
,指的是“字符串”,即包含文件系统描述的文件的名称。
对于您提供的代码片段,我可以猜测它MOUNTED
可能被定义为
1
#define MOUNTED "/etc/mtab"
或 2
char MOUNTED[] = "/etc/mtab"
来自http://www.gnu.org/software/gnulib/manual/html_node/mntent_002eh.html:
mntent.h
定义类型 struct mntent 和宏
MNTTAB
,MOUNTED
,MNTTYPE_*
,MNTOPT_*
...
请注意,setmntent
将文件路径作为第一个参数,因此通常MOUNTED
定义为文件路径(如果宏甚至可用)。 "/etc/mtab"