设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
请问有什么系统调用可以获取系统中已挂载的文件系统列表 ...
1
2
/ 2 页
下一页
返回列表
查看:
2376
|
回复:
11
请问有什么系统调用可以获取系统中已挂载的文件系统列表?
[复制链接]
co63
co63
当前离线
积分
167
IP卡
狗仔卡
发表于 2006-9-29 10:22:53
|
显示全部楼层
|
阅读模式
如果从/etc/mtab读取这一列表,当/etc/mtab被认为做了改动,或被删除,得到的结果就是不正取的。
如果从/proc/mounts获取,有可能/proc文件系统没有被挂载上去
不知道有没有什么系统调用可以做这一事情?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
MMMIX
MMMIX
当前离线
积分
234
IP卡
狗仔卡
发表于 2006-9-29 17:46:56
|
显示全部楼层
可以参考下 mount 的实现
回复
支持
反对
使用道具
举报
显身卡
co63
co63
当前离线
积分
167
IP卡
狗仔卡
楼主
|
发表于 2006-9-30 09:29:24
|
显示全部楼层
已经看过
mount首先是读取/etc/mtab文件,
如果文件不存在,则从/proc/mounts 中获取信息
你可以试试:移除/etc/mtab,卸载/proc/mounts,然后运行mount命令
回复
支持
反对
使用道具
举报
显身卡
MMMIX
MMMIX
当前离线
积分
234
IP卡
狗仔卡
发表于 2006-9-30 17:17:55
|
显示全部楼层
跟踪了一下 mount 的系统调用(AIX 5.3, Linux kernel 2.6), 确实是先读 /etc 下的配置文件, 然后再读 /proc 下的信息(AIX 5.3 下没有试过, 主机不能瞎折腾). 在读取 /etc 下配置文件中的信息后, 似乎是通过 ioctl 等系统调用来确认文件系统是否已经挂载.
不过, 在把 /etc/mtab 删除后, 然后运行 umount /proc 从没有真正成功, 不过再运行 mount 确实没有输出了, 但过不久 /etc/mtab 又会自动出现, 虽然内容是空的. 另外, 记得对 /proc 的支持是编译入内核的, /proc 应该一直都在的, 而且其也是内核数据结构的实时反映.
回复
支持
反对
使用道具
举报
显身卡
DoDo
DoDo
当前离线
积分
1538
IP卡
狗仔卡
发表于 2006-9-30 17:26:33
|
显示全部楼层
http://www.freebsdchina.org/utils/phpMan.php/man/getfsstat/2
http://www.freebsdchina.org/utils/phpMan.php/man/getmntinfo/3
http://www.freebsdchina.org/utils/phpMan.php/man/statfs/2
getfsstat, getmntinfo, statfs
手头没有机器, 只好找了一个 FreeBSD 的 online man pages, 所以这些函数是否存在于 Linux 中我不知道, 也不知道它们是否能完成楼主想要的功能
回复
支持
反对
使用道具
举报
显身卡
DoDo
DoDo
当前离线
积分
1538
IP卡
狗仔卡
发表于 2006-9-30 17:27:57
|
显示全部楼层
/etc/mtab 本来就是一个动态更新的文件吧
回复
支持
反对
使用道具
举报
显身卡
co63
co63
当前离线
积分
167
IP卡
狗仔卡
楼主
|
发表于 2006-10-3 19:03:13
|
显示全部楼层
/etc/mtab是动态更新的
mount和umount命令都更新它
man getfsstat, man getmntinfo都没有结果。
man fsstat 倒是有点信息,可以根据某一路径返回一个挂载的文件系统的信息
回复
支持
反对
使用道具
举报
显身卡
DoDo
DoDo
当前离线
积分
1538
IP卡
狗仔卡
发表于 2006-10-3 21:01:29
|
显示全部楼层
http://www.blog.edu.cn/user1/5494/archives/2005/145462.shtml
man 5 fstab
search about getmntent
maybe useful
回复
支持
反对
使用道具
举报
显身卡
co63
co63
当前离线
积分
167
IP卡
狗仔卡
楼主
|
发表于 2006-10-5 16:52:26
|
显示全部楼层
谢谢各位的热心帮助
但 getmntent 并不能解决问题
它有一个参数,是一个文件名。文件的格式要求类似/etc/mtab
使用setmntent, getmntent, endmntent从这一文件中读取信息。读出的信息并不一定是系统中已挂载的文件系统。我们可以使用同样的格式编写一个新文件,然后用这几个函数读取。
回复
支持
反对
使用道具
举报
显身卡
huyongzs
huyongzs
当前离线
积分
824
IP卡
狗仔卡
发表于 2007-12-2 17:16:46
|
显示全部楼层
mount 的实现在哪里?
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表