我见过类似的东西
setmntent(MOUNTED, "r");
有什么意义MOUNTED?是关键字吗?宏?
在阅读了 的手册页后setmntent,我认为第一个参数setmntent是file*which could be /etc/mtabor /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"