第四章_标准IO、数据文件和信息 :函数uname、gethostname

函数uname、gethostname

uname获取当前内核名称和其它信息。

#include <sys/utsname.h>
int uname(struct utsname *buf);

参数:
buf:指向存放系统信息的缓冲区,原型如下

struct utsname {
    char sysname[];
    char nodename[];
    char release[];
    char version[];
    char machine[];
    #ifdef _GNU_SOURCE
    char domainname[];
    #endif
};

结构体内的数组长度未指定,不过都以null字节结尾。

gethostname返回本地主机的标准主机名。

#include <unistd.h>
int gethostname(char *name, size_t len);

参数说明:
这个函数需要两个参数:
接收缓冲区name,其长度必须为len字节或是更长,存获得的主机名。
接收缓冲区name的最大长度

返回值:
如果函数成功,则返回0。如果发生错误则返回-1。错误号存放在外部变量errno中。

测试程序

#include<stdio.h>
#include<sys/types.h>
#include<sys/utsname.h>
#include<unistd.h>
#include<stdlib.h>

int main()
{
    struct utsname *name;
    name = malloc(sizeof(struct utsname)*20);
    char csname[20];

    int res = uname(name);
    printf("machine:%s\n",name->machine);
    printf("nodename:%s\n",name->nodename);
    printf("sysname:%s\n",name->sysname);
    printf("version:%s\n",name->version);

    res = gethostname(csname,20);
    printf("\nhostname:%s\n",csname);

    return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值