LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: nait

利用/proc文件系统实现系统监视的两个问题

[复制链接]
发表于 2005-4-9 19:21:06 | 显示全部楼层
调用外部工具'top",I/O重定向到自己的程序,如何?

(只是一个win平台下的思路,linux也一样吧?呵呵!)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-10 10:12:46 | 显示全部楼层
这固然也是一个替代的办法
我也想到过用popen结合df来做

但我的最终目的是要了解proc文件系统啊
回复 支持 反对

使用道具 举报

发表于 2005-4-10 11:28:38 | 显示全部楼层
Post by nait
辛辛苦苦跟踪了几个小时(数据结构好多啊,我快晕了)
最后出现
  1. (gdb) next
  2. Single stepping until exit from function gkrellm_init_plugin,
  3. which has no line number information.
  4. 0x40b33877 in ?? () from /usr/lib/gkrellm2/plugins/gkrellmms2.so
  5. (gdb) next
  6. Cannot find bounds of current function
复制代码

我彻底晕了

gkrellm2能不能静态编译?如果可以就这样做,以免受到gdb跟踪时受到动态库的影响。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-10 11:59:36 | 显示全部楼层
我试过静态编译
单没有gtk-X11的静态库
不能成功
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-10 12:41:14 | 显示全部楼层
我试过静态编译
单没有gtk-X11的静态库
不能成功
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-14 12:33:53 | 显示全部楼层
我刚strace了一下df
发现df没有用到/proc啊
不知道是怎么实现的
  1. ]$ strace df 2>&1|grep open
  2. open("/etc/ld.so.cache", O_RDONLY)      = 3
  3. open("/lib/libc.so.6", O_RDONLY)        = 3
  4. open("/dev/urandom", O_RDONLY)          = 3
  5. open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
  6. open("/usr/share/locale/locale.alias", O_RDONLY) = 3
  7. open("/usr/lib/locale/en_US/LC_IDENTIFICATION", O_RDONLY) = 3
  8. open("/usr/lib/locale/en_US/LC_MEASUREMENT", O_RDONLY) = 3
  9. open("/usr/lib/locale/en_US/LC_TELEPHONE", O_RDONLY) = 3
  10. open("/usr/lib/locale/en_US/LC_ADDRESS", O_RDONLY) = 3
  11. open("/usr/lib/locale/en_US/LC_NAME", O_RDONLY) = 3
  12. open("/usr/lib/locale/en_US/LC_PAPER", O_RDONLY) = 3
  13. open("/usr/lib/locale/en_US/LC_MESSAGES", O_RDONLY) = 3
  14. open("/usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
  15. open("/usr/lib/locale/en_US/LC_MONETARY", O_RDONLY) = 3
  16. open("/usr/lib/locale/en_US/LC_COLLATE", O_RDONLY) = 3
  17. open("/usr/lib/locale/en_US/LC_TIME", O_RDONLY) = 3
  18. open("/usr/lib/locale/en_US/LC_NUMERIC", O_RDONLY) = 3
  19. open("/usr/lib/locale/zh_CN/LC_CTYPE", O_RDONLY) = 3
  20. open("/etc/mtab", O_RDONLY)             = 3
  21. open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
  22. open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-4-14 20:44:50 | 显示全部楼层
man statfs可以得到文件系统的有关信息。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-14 22:11:37 | 显示全部楼层
多谢斑竹
我现在就去看看:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-15 18:47:19 | 显示全部楼层
我好笨啊
肉到嘴边了竟然还不知道:(
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表