zoukankan      html  css  js  c++  java
  • uname()系统调用学习

    uname()系统调用返回了一系列关于主机系统的标识信息。

    #define _UTSNAME_LENGTH 65

    struct utsname{

      char sysname[_UTSNAME_LENGTH];    /*Implementation name*/

      char nodename[_UTSNAME_LENGTH];  /*Node name on network*/

      char release[_UTSNAME_LENGTH];      /*Implementation release level*/

      char version[_UTSNAME_LENGTH];      /*Release version level*/

      char machine[_UTSNAME_LENGTH];     /*Hardware on which system is running*/

      char domainname[_UTSNAME_LENGTH]; /*NIS domain name of host*/

    };

    #include <stdio.h>
    #include <sys/utsname.h>
    
    int main() {
        struct utsname uts;
        if(uname(&uts) == -1) {
            fprintf(stderr, "uname.
    ");
            return -1;
        }
    
        printf("Node name: %s
    ", uts.nodename);
        printf("system name: %s
    ", uts.sysname);
        printf("release: %s
    ", uts.release);
        printf("version: %s
    ", uts.release);
        printf("machine: %s
    ", uts.machine);
        printf("domainname: %s
    ", uts.__domainname);
    
        return 0;
    }

    输出:

    Node name: hahaha
    system name: Linux
    release: 4.18.0-240.22.1.el8_3.x86_64
    version: 4.18.0-240.22.1.el8_3.x86_64
    machine: x86_64
    domainname: (none)

    查看了本机utsname.h头文件,发现里面有如下几行

    _GNU_SOURCE is the only one you should ever define yourself. 

    __USE_GNU is defined internally through a mechanism in features.h (which is included by all other glibc headers)

    when _GNU_SOURCE is defined, and possibly under other conditions.

    Defining or undefining __USE_GNU yourself will badly break the glibc headers.

  • 相关阅读:
    我的canvasnode v0.1完成了
    我们的scrum实践
    好文转贴(6)——代码永远是罪魁祸首吗?
    关于“产品驱动”和“技术驱动”
    居然获“最受读者喜爱的IT图书作译者奖”了
    重写代码 多重登录
    图片验证码接口
    syl/settings.py中配置注册 权限认证
    码云 上传与克隆
    短信验证接口
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/14976488.html
Copyright © 2011-2022 走看看