uname用于获取系统信息,如操作系统名称、内核版本、硬件架构等。
1.头文件
#include <sys/utsname.h>
2.函数原型
int uname(struct utsname *buf);
3.参数
*buf:一个指向 struct utsname 结构体的指针。该结构体用于存放系统信息。
下面来介绍一下struct utsname 结构体:
struct utsname {
char sysname[]; /* 操作系统名称*/
char nodename[]; /*网络节点的主机名*/
char release[]; /*操作系统版本*/
char version[]; /*操作系统版本号*/
char machine[]; /*硬件名称*/
#ifdef _GNU_SOURCE
char domainname[]; /*网络域名*/
#endif
};
4.返回值
如果成功,uname 返回 0。如果出错,返回 -1,并设置 errno 以指示错误原因。
5.示例:(使用uname查看系统基本信息)
| #include <stdio.h>
#include <sys/utsname.h> #include <errno.h> int main() { struct utsname buf; if (uname(&buf) == -1) { perror("uname"); return 1; } printf("System Name: %sn", buf.sysname); printf("Node Name: %sn", buf.nodename); printf("Release: %sn", buf.release); printf("Version: %sn", buf.version); printf("Machine: %sn", buf.machine); return 0; } |
6.查看测试结果
| System Name: Linux
Node Name: ubuntu Release: 6.8.0-40-generic Version: #40~22.04.3-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 30 17:30:19 UTC 2 Machine: x86_64 |
200