关闭

uname函数初步封装

1072人阅读 评论(0) 收藏 举报

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 []类型

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21699次
    • 积分:354
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:9条
    最新评论