我想要一个类似于 mountpoint 命令 Linux 的函数或系统调用。
(此命令将检查给定目录是否为挂载点)
问问题
2736 次
3 回答
6
我不知道会执行此操作的实际系统调用,但您可以做的是比较您要检查的目录及其父目录的设备号。这可以用stat
. 示例代码(省略错误检查):
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
int main(void) {
struct stat mp, mp_parent;
stat("/boot", &mp);
stat("/boot/..", &mp_parent);
if (mp.st_dev != mp_parent.st_dev)
printf("/boot is a mount point.\n");
else
printf("/boot is not a mount point.\n");
return 0;
}
于 2012-05-02T09:03:19.647 回答
1
对这样的功能的需求通常(尽管并非总是)是一个危险信号,表明你没有接受系统的抽象......你应该重新考虑你正在做的任何事情。如果您根据某物是否是挂载点在软件中做出某些选择...请考虑将替代行为作为可以通过脚本控制的参数。人们可以通过使用本机 mountpoint 命令或其他任何方式参数化您的程序以采用该行为。
除了免责声明,这里有一个实现mountpoint.c
:
https://fossies.org/linux/sysvinit/src/mountpoint.c
...以及有关“测试文件类型”的参考
于 2012-05-02T09:03:37.423 回答
0
编写自己的应用程序来解析/proc/mounts
. 然后将您的路径与来自的路径进行比较/proc/mounts
。如果它们相等,则路径是安装点。
于 2013-12-06T14:58:13.643 回答