首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C如何使用uname函数

C如何使用uname函数
EN

Stack Overflow用户
提问于 2010-08-29 19:48:44
回答 4查看 35K关注 0票数 16

我应该编写一个函数来获取有关系统的一些信息(最重要的信息是体系结构)。我找到了函数uname,它可以使用,包括嗯,虽然我在谷歌上搜索并阅读了文档,但是我找不到这个函数的任何例子,我也不知道如何使用uname。有人能解释我怎么用吗?如果你也能写一个例子,那就太好了。提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2010-08-29 19:53:15

首先,包括标题:

代码语言:javascript
复制
#include <sys/utsname.h>

然后,定义一个utsname结构:

代码语言:javascript
复制
struct utsname unameData;

然后,使用指向结构的指针调用uname():

代码语言:javascript
复制
uname(&unameData); // Might check return value here (non-0 = failure)

在此之后,结构将包含您想要的信息:

代码语言:javascript
复制
printf("%s", unameData.sysname);

http://opengroup.org/onlinepubs/007908775/xsh/sysutsname.h.html

票数 28
EN

Stack Overflow用户

发布于 2014-12-24 16:01:11

充分发挥作用的例子胜过千言万语。;-)

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/utsname.h>

int main(void) {

   struct utsname buffer;

   errno = 0;
   if (uname(&buffer) < 0) {
      perror("uname");
      exit(EXIT_FAILURE);
   }

   printf("system name = %s\n", buffer.sysname);
   printf("node name   = %s\n", buffer.nodename);
   printf("release     = %s\n", buffer.release);
   printf("version     = %s\n", buffer.version);
   printf("machine     = %s\n", buffer.machine);

   #ifdef _GNU_SOURCE
      printf("domain name = %s\n", buffer.domainname);
   #endif

   return EXIT_SUCCESS;
}
票数 23
EN

Stack Overflow用户

发布于 2010-08-29 19:54:41

从文档中可以看出,您使用它的方式如下:

代码语言:javascript
复制
struct utsname my_uname;
if(uname(&my_uname) == -1)
   printf("uname call failed!");
else
   printf("System name: %s\nNodename:%s\nRelease:%s\nVersion:%s\nMachine:%s\n",
       my_uname.sysname, my_uname.nodename, my_uname.release,my_uname.version,my_uname.machine);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3596310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档