首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数或类似于linux中的"mountpoint“命令的系统调用

函数或类似于linux中的"mountpoint“命令的系统调用
EN

Stack Overflow用户
提问于 2012-05-02 16:53:01
回答 3查看 2.7K关注 0票数 0

我想要一个类似于挂载点命令Linux的函数或系统调用。

(此命令将检查给定的目录是否为挂载点)

EN

回答 3

Stack Overflow用户

发布于 2012-05-02 17:03:20

我不知道实际的syscall会这样做,但您可以做的是将您想要检查的目录的设备号与其父目录进行比较。这可以用stat来完成。示例代码(省略错误检查):

代码语言:javascript
复制
#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;
}
票数 6
EN

Stack Overflow用户

发布于 2012-05-02 17:03:37

对这样的函数的需求通常(尽管不总是)是一个危险信号,表明您没有拥抱system...and的抽象,您应该重新考虑您正在做的任何事情。如果您在软件中根据某物是否是mountpoint...consider做出某种选择,则将该替代行为设置为可通过脚本控制的参数。人们可以通过使用本地挂载点命令或其他任何命令来参数化您的程序以采用该行为。

抛开这个免责声明不谈,下面是mountpoint.c的一个实现

https://fossies.org/linux/sysvinit/src/mountpoint.c

...and关于“测试文件类型”的参考

http://www.aquaphoenix.com/ref/gnu_c_library/libc_160.html

票数 1
EN

Stack Overflow用户

发布于 2013-12-06 22:58:14

编写您自己的应用程序来解析/proc/mounts。然后将您的路径与/proc/mounts中的路径进行比较。如果它们相等,那么path就是一个挂载点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10410513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档