博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《UNIX环境高级编程》笔记--系统标识
阅读量:3604 次
发布时间:2019-05-21

本文共 1058 字,大约阅读时间需要 3 分钟。

分类: 
 
248人阅读 
(0) 
 

POSIX.1定义了uname函数,它返回与当前主机和操作系统有关的信息。

[cpp] 
  1. #include <sys/utsname.h>  
  2. int uname(struct utsname *name);  //如果成功返回非负值,出错则返回-1.  
utsname结构体的定义如下:

[cpp] 
  1. struct  utsname{  
  2.     char sysname[];   //操作系统名称  
  3.     char nodename[];  //当前节点名称  
  4.     char release[]; //当前操作系统release  
  5.     char version[];  //当前release的版本  
  6.     char machine[];  //硬件类型名称  
  7. }  
实践:

[cpp] 
  1. #include <stdio.h>  
  2. #include <sys/utsname.h>  
  3.   
  4. int main(void){  
  5.         struct utsname name;  
  6.         if(uname(&name) == -1){  
  7.                 perror("uname");  
  8.                 return -1;  
  9.         }  
  10.         printf("%s,%s,%s,%s,%s\n",name.sysname,name.nodename,name.release,name.version,name.machine);  
  11.         return 0;  
  12. }  
运行结果:

Linux,yan-vm,3.5.0-17-generic,#28-Ubuntu SMP Tue Oct 9 19:32:08 UTC 2012,i686

历史上,BSD派生的系统提供了gethostname函数,它只返回主机名,该名字通常是TCP/IP网络上主机的名字。

[cpp] 
  1. #include <unistd.h>  
  2. int gethostname(char* name, int namelen); 成功返回0,出错返回-1.  
实践:

[cpp] 
  1. #include <stdio.h>  
  2. #include <unistd.h>  
  3.   
  4. int main(void){  
  5.         char name[100];  
  6.         if(gethostname(name,100) == -1){  
  7.                 perror("gethostname");  
  8.                 return -1;  
  9.         }  
  10.         name[99] = '\0';  
  11.         printf("%s\n",name);  
  12.         return 0;  
  13. }  
运行结果:

yan@yan-vm:~/apue$ ./a.out

yan-vm

更多

转载地址:http://jstzn.baihongyu.com/

你可能感兴趣的文章
webpack打包技术
查看>>
Leecode 面试题09用两个栈实现队列
查看>>
fastdfs连接超时报错解决方案
查看>>
Leecode202. 快乐数
查看>>
windows10解决80端口被占用的问题
查看>>
ElasticSearch快速入门之创建索引库、创建映射、创建文档、搜索文档
查看>>
用故事巧妙帮助理解公钥和私钥的区别和联系
查看>>
application.properties 文件和 application.yml 文件区别以及加载顺序
查看>>
阿里云服务器安装docker,拉取常用的mysql,redis,nginx等镜像
查看>>
为什么timestamp到2038年就截止了?
查看>>
设计模式之适配器模式
查看>>
设计模式之工厂模式
查看>>
设计模式之原型模式
查看>>
设计模式之对象池模式
查看>>
设计模式之责任链模式 Java实例代码 + Tomcat责任链模式应用+安卓责任链模式应用
查看>>
设计模式之命令模式 Java实例讲解 + 线程池中的应用场景
查看>>
设计模式之 解释器模式 Java实例代码演示
查看>>
设计模式之迭代器模式
查看>>
设计模式之空对象模式详解 附Java源码实例
查看>>
设计模式之访问者模式
查看>>