作者piimaila (haha)
看板LinuxDev
标题Re: [问题] 取得 LINUX 系统资讯的方式... ??
时间Sat Jan 20 10:25:30 2007
要取得linux系统资讯, 说真的很复杂, 而且并没有统一的方式
硬要说有, 可能有套tog-pegasus你可以参考, 但是我想跟你的理想有非常遥远的差距
那是一套CIM的工具, 可视为linux下的WMI, 但是linux下你也知道, 啥都有啥都少一点
你可能要自己写一堆provider, 才可让这个工具实用, 这工具redhat预设安装
我不太清楚debian有无此工具, 你说的"资料库" 应该是指这东西
但是我只能跟你说非常不实用, 只有"重视架构"到有点病态的人会走这条路
(我刚好就遇到 冏rz..., 所以小第对满嘴架构的人颇反感)
建议你用现成工具作文字处理就好, 这不是"丢脸","没架构" 在linux下是很正常的
top, ps, inb, outb 等多数linux系统工具, 事实上也是对/proc作文书处理而已,
系统资讯主要是可由/proc, dmidecode, hdparm等取得
如果你硬要写C code, "为写而写", 你各个硬体的低阶控制在linux下没有统一
SCSI, 你可能要去翻SCSI COMMAND, sdparm原始码你可以参考
IDE, 你可以参考hdparm原始码
CPU, dmidecode内原始码可以参考
简单的来说就是把各个工具的部分程式抄一遍, 别人给了指令
如果你硬要"重做" 可以去看这些指令的原始码
※ 引述《KENyroj (难得一身鸡蛋糕...)》之铭言:
: ※ 引述《KENyroj (难得一身鸡蛋糕...)》之铭言:
: : 请问 LINUX 如何取得系统资讯... ??
: : 比如说现在已安装的套件... (好像是在某个资料库?)
: : 或着是一些硬体资讯...
: : 除了用 command (什麽 rpm, dmsg这类的)
: : 请问还能怎麽做... ?? 恳请赐教 ^^;
: : __yroj 小弟用的系统是 debain
: 对不起手动置底一下... XD 我是要用 C 来写取得资讯的程式...
: 之前推文的大大似乎主要是以指令取得资讯的方式居多... 感谢回应
: 目前找到的资讯是... 用 sysconf 可以取得一些数值的资讯...
: 不过还是很有限... 不知那种... 比如 CPU 型号, 硬碟厂牌之类的...
: 要如何取得呢... 还请大大赐教...
: __yroj
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.128.251.34
1F:推 fumin:其实用system()去call shell command就好啦~ 01/20 11:08
2F:推 TroyLee:楼上的方法应该不太好....因为output并不会直接pipe 01/20 19:41
3F:→ TroyLee:进你的程式... 01/20 19:41
4F:→ TroyLee:用 popen 可能比较好一点 01/20 19:42
5F:推 KENyroj:感谢大大的指教!! 事实上 经由 trace KDE 的 资讯中心後 01/21 16:49
6F:→ KENyroj:它其实也只是在对 proc 在文书处理 也有用 popen run cmd 01/21 16:50
7F:→ KENyroj:跟诸位讲的不谋而合... 谢谢大家的指教... ;-) 01/21 16:51