uname.h文件 :
#ifndef _UNIX_UNAME_HPP
#define _UNIX_UNAME_HPP
/* author: piboye
* email : piboye@yahoo.com.cn
* date : 2006.06.3
*/
//Header
#include <sys/utsname.h>
// unix namespace;
namespace unix {
// uname of unix for fetch base informatiion of system ;
class Uname : public utsname { //inherited from utsname which been return by uname;
public:
//invoke uname failure will throw the class
class BAD_UNAME {
public:
int i_err;
BAD_UNAME(int a_err) : i_err(a_err) {}
}; // ended the definition of class BAD_UNAME
Uname() throw (BAD_UNAME) { // initialize base utsname
int err;
if( (err = uname(this)) < 0 ) // treat errors,
throw BAD_UNAME(err);
}
}; //ended the definition of class Uname
} // unix namespace be closed.
#endif // _UNIX_UNAME_HPP .
使用方法:
unix::Uname myhost; //这里可能失败,会抛出 BAD_UNAME异常。
myhost.sysname;//返回 操作系统的名字
myhost.nodename; //返回 计算机网络结点名
myhost.release; //返回 发行版本
myhost.version; //返回 更细的版本号
my host.machine; //返回 机器硬件类型
这些都是是char []类型