uname(系统调用)
2015-11-21 14:00
513 查看
uname系统调用可用于获取系统信息。例如,内核名字,操作系统的发行级别号,类似于”2.6.28”,操作系统版本号,机器的类型,例如x86或arm。
实例
输出
struct utsname { char sysname[]; /* Operating system name (e.g., "Linux") 内核名称*/ char nodename[]; /* Name within "some implementation-defined network" 网络节点上的主机名*/ char release[]; /* Operating system release (e.g., "2.6.28") 出内核发行号*/ char version[]; /* Operating system version 内核版本*/ char machine[]; /* Hardware identifier 主机的硬件架构名称 */ }; #include <sys/utsname.h> int uname(struct utsname *buf); int olduname(struct xxxutsname *buf); int oldolduname(struct xxxutsname *buf); 返回值: 成功,返回0,失败返回-1,错误类型在errno中。 有趣的是linux的系统调用中存在3个uname系统调用。 这些系统调用都是用于获取内核信息的。 功能上是存在重复的,但考虑到内核的向后兼容,所以并未删除重复的系统调用。
实例
#include <sys/utsname.h> #include <stdlib.h> #include <stdio.h> int main(int argc,char *argv[]) { struct utsname buf; int rt=0; rt=uname(&buf); if(rt==-1) { printf("ret == -1 \n"); exit(1); } printf("sysname = %s \n",buf.sysname); printf("nodename = %s \n",buf.nodename); printf("release = %s \n",buf.release); printf("version = %s \n",buf.version); printf("machine = %s \n",buf.machine); return 0; }
输出
sysname = Linux nodename = xxx-laptop release = 3.19.0-33-generic version =#38~14.04.1-Ubuntu SMP Fri Nov 6 18:17:49 UTC 2015 machine = i686
相关文章推荐
- 27.iOS中最重要的视图UITableView表视图第二章
- Linux Shell脚本编程--wc命令
- 传智播客javase总结 3
- ListView的列表项中含有CheckBox之类的抢占焦点的组件使得ListView本身失去焦点的解决方法
- java小练习-去除ArrayList集合中的重复元素
- Oracle表管理
- Android多线程应用之-加载图片列表
- 视觉基础:关于机器视觉、机器学习及人工智能领域
- css优先级和权重
- 最基本的ubuntu下安装Hadoop
- How to configuration physical dataguard within an Exadata?
- 初学者入门:软件测试从零开始
- 内存管理的一些小问题(面试常用)
- hadoop的第一个程序wordcount实现
- int 0x13 中断理解
- centos 7 安装源码kernel source(源码树)编译驱动
- Codeforces Round #332 (Div. 2) A. Patrick and Shopping
- [Linux] linux awk命令详解
- 贪吃蛇
- 杭电Sort it 2689树状数组