免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4132 | 回复: 10
打印 上一主题 下一主题

[C] [求教]用C语言如何获取UNIX的系统信息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-30 14:43 |只看该作者 |倒序浏览
用C语言如何获取UNIX的系统信息

我想用C语言编写一个获取UNIX系统信息的程序,如: CPU使用率,内存使用率, 空间使用率.

却无从下手,

请各位大侠指点一下,如何来编写这类程序

谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-01-30 14:46 |只看该作者
从/proc文件系统中读取相应的数据
具体每个文件的信息请man proc
例如cpu使用信息可以从/proc/stat文件中获取
内存使用信息可以从/proc/meminfo文件中获取

论坛徽章:
0
3 [报告]
发表于 2007-01-30 15:33 |只看该作者
搜索libstatgrab的源码包
\src\libstatgrab目录下有例子,包括AIX,HP,SUN,BSD等等

论坛徽章:
0
4 [报告]
发表于 2007-01-30 15:42 |只看该作者
I had no experience under unix, but i know there is a function can get the system information under linux, it's named sysinfo.
you can exec man sysinfo in the console and show the following:

NAME
       sysinfo - returns information on overall system statistics

SYNOPSIS
       #include <sys/sysinfo.h>

       int sysinfo(struct sysinfo *info);

DESCRIPTION
       Until Linux 2.3.16, sysinfo used to return information in the following
       structure:

              struct sysinfo {
                   long uptime;             /* Seconds since boot */
                   unsigned long loads[3];  /* 1, 5, and 15 minute load averages
*/
                   unsigned long totalram;  /* Total usable main memory size */
                   unsigned long freeram;   /* Available memory size */
                   unsigned long sharedram; /* Amount of shared memory */
                   unsigned long bufferram; /* Memory used by buffers */
                   unsigned long totalswap; /* Total swap space size */
Manual page sysinfo(2) line 1/74 30%

论坛徽章:
0
5 [报告]
发表于 2007-01-30 16:13 |只看该作者
UNIX似乎没有/proc

论坛徽章:
0
6 [报告]
发表于 2007-01-30 18:41 |只看该作者
这个跟系统相关,没有完全统一的方法,Linux和BSD下proc最方便。
另外sysinfo只是linux可用吧。

论坛徽章:
0
7 [报告]
发表于 2007-01-31 09:37 |只看该作者
原帖由 net_robber 于 2007-1-30 16:13 发表
UNIX似乎没有/proc

哎呀,我没有用过UNIX,如果没有proc用gnome的glibtop库应该是
可以获取系统资源使用信息的,这个库使用还是比较简单的,源码
中有一个简单的文档

论坛徽章:
0
8 [报告]
发表于 2007-01-31 16:33 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2007-01-31 16:35 |只看该作者

回复 8楼 112233yxl 的帖子

同意!!!!!!11111

论坛徽章:
0
10 [报告]
发表于 2007-01-31 16:40 |只看该作者
原帖由 112233yxl 于 2007-1-31 16:33 发表
一年前和你有同样的想法
现在觉得单纯用c来做并不是个好主意
现在我先用shell收集硬件信息,通过system();来调用shell,并生成自己定义的文件
这样,对文件操作很容易得到!
个人观点!!


我现在就是这么做的,用pro*c,但是感觉如此调用资源占用似乎也不小
如果能直接调用c函数就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP