3

我见过类似的东西

setmntent(MOUNTED, "r");

有什么意义MOUNTED?是关键字吗?宏?

在阅读了 的手册页后setmntent,我认为第一个参数setmntentfile*which could be /etc/mtabor /proc/mounts。但是这个MOUNTED词让我很困惑。

有什么帮助吗?

4

3 回答 3

2

它们是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

安装信息

于 2012-10-09T15:48:27.650 回答
0

setmntent()的第一个参数是char *,指的是“字符串”,即包含文件系统描述的文件的名称。

对于您提供的代码片段,我可以猜测它MOUNTED可能被定义为

1

#define MOUNTED "/etc/mtab"

或 2

char MOUNTED[] = "/etc/mtab"
于 2012-10-09T15:46:44.843 回答
0

来自http://www.gnu.org/software/gnulib/manual/html_node/mntent_002eh.html

mntent.h

定义类型 struct mntent 和宏MNTTAB, MOUNTED, MNTTYPE_*, MNTOPT_*...

请注意,setmntent将文件路径作为第一个参数,因此通常MOUNTED定义为文件路径(如果宏甚至可用)。 "/etc/mtab"

于 2012-10-09T15:49:15.060 回答