从存储器内部看uname结构
2016-06-28 09:29
281 查看
#include <sys/utsname.h> #include <stdio.h> #include <errno.h> #include <string.h> int main() { struct utsname name; if(uname(&name)==-1){ perror("uname error"); return -1; } size_t len=0; char* addr=(char*)&name; while(len<sizeof(struct utsname)){ if(*(addr+len)=='\0'){ ++len; continue; } printf("%s ",addr+len); len+=strlen(addr+len); } putchar('\n'); return 0; }
结果如下:
Linux XXX 3.19.0-61-generic #69~14.04.1-Ubuntu SMP Thu Jun 9 09:09:13 UTC 2016 x86_64 (none)
对于utsname结构的定义可直接到
struct utsname{ char sysname[_UTSNAME_SYSNAME_LENGTH]; char nodename[_UTSNAME_NODENAME_LENGTH]; char release[_UTSNAME_VERSION_LENGTH]; char machine[_UTSNAME_MACHINE_LENGTH]; #if _UTSNAME_DOMAIN_LENGHT - 0 #ifdef __USE_GNU char domainame[_UTSNAME_DOMAIN_LENGTH]; #else char __domainname[_UTSNAME_DOMAIN_LENGTH]; #endif #endif };
由此可知在Linux中utsname结构的对象存储器中存储形式如下:
内容 | sysname[] |: nodename[] |: release[] |: version[] |: machine[]: | ….. |
参考书:
相关文章推荐
- Unix 即将迎来 50 岁
- Linux VS Unix:Linux欲一统天下 Unix不死
- C语言实现字符转unix时间戳的简单实例
- 看UNIX高手的10个习惯第1/2页
- 通过PHP修改Linux或Unix口令的方法分享
- mysql unix准换时间格式查找指定日期数据代码
- php strtotime 函数UNIX时间戳
- 安全检测Unix和Linux服务器安全设置入门精讲
- 分享20个Unix/Linux 命令技巧
- PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
- Linux/UNIX和Window平台上安装Mysql
- Mac OS下配置远程Linux 服务器SSH密钥认证自动登录
- 读The How and Why of User Private Groups in Unix
- C的温故知新
- 使用golang和docker守护进程交互
- 在Linux和Unix中使用chmod命令改变文件权限的用法
- python UNIX_TIMESTAMP时间处理方法分析
- Linux/UNIX和Window平台上安装Mysql
- Alice梦游UNIX仙境
- LINUX之前UNIX的历史