函数uname返回当前主机的名字。经常与gethostbyname一起用来确定本地主机的IP地址。其原型为:

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

成功返回非0,失败返回-1

此函数填装结构utsnamee,其结构体定义为:

#define UTS_NAMESIZE 16
#define UTS_NODESIZE 256
struct utsname
{char sysname[_UTS_NAMESIZE];//name of the oprating systemchar nodename[_UTS_NODESIZE];//name of this nodechar release[_UTS_NAMESIZE];//O.S release levelchar version[_UTS_NAMESIZE];// O.S version levelchar machine[_UTS_NAMESIZE];//hardware type
};

代码如下:

#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/utsname.h>#define BUFLEN 128char ** my_addrs(int *addrtype)
{struct hostent *hptr;struct utsname myname;if (uname(&myname) < 0) return NULL;if ((hptr = gethostbyname(myname.nodename)) == NULL) return NULL;*addrtype = hptr->h_addrtype;return hptr->h_addr_list;
}int main(int argc, char **argv)
{int type;char *paddr = *my_addrs(&type);char buf[BUFLEN];printf("type=%d, haddr=%s\n", type,inet_ntop(AF_INET, paddr, buf, sizeof(buf)));return 0;
}

输出为:

网络编程学习笔记(uname函数)相关推荐

  1. 网络编程学习笔记(shutdown函数)

    终止网络连接的正常方法是close,但close有两个限制,可由shutdown来避免 1.close将描述字的访问计数减1,仅在此计数为0时才关闭套接口.用shutdown可以激发TCP的正常连接终 ...

  2. 网络编程学习笔记(socketpair函数)

    socketpair函数建立一对相互连接的套接口,这个函数只对Unix域套接口适用,其定义如下: #include <sys/socket.h> int socketpair(int fa ...

  3. 网络编程学习笔记(getnameinfo函数)

    这个函数与getaddrinfo互补,它以一个套接口地址为参数,返回一个描述主机的字符串和一个描述服务的字符串.其函数原型如下: #include <netdb.h> int getnam ...

  4. 网络编程学习笔记(udp_client函数)

    创建一个未连接的UDP套接口的客户函数,其代码如下: #include <netdb.h> #include <sys/socket.h> #include <netin ...

  5. 网络编程学习笔记(getaddrinfo函数)

    函数getaddrinfo在库函数中隐藏了所有协议依赖性.应用 程序只需要处理由getaddrinfo填写的套接口地址结构.其函数原型为: #include <netdb.h> int g ...

  6. 网络编程学习笔记(gethostbyaddr函数)

    函数gethostbyaddr取一个二进制的IP地址并试图找到相应于此地址的主机名,与gethostbyname的行为恰好相反.gethostbyname感兴趣的是h_name 其原型为: #incl ...

  7. 网络编程学习笔记(gethostbyname2函数与IPv6支持)

    其原型为: #include <netdb.h> struct hostent * gethostbyname2(const char *hostname, int family); 成功 ...

  8. 网络编程学习笔记(gethostbyname函数)

    #include <netdb.h> struct hostent* gethostbyname(const char* hostname); 成功,返回非空指针,出错返回空指针,同时设置 ...

  9. 网络编程学习笔记(poll函数)

    其原型为: #include <poll.h> int poll(struct pollfd *fdarray, unsigned long nfds, int timeout); 成功时 ...

最新文章

  1. math range error
  2. 怎样利用超图客户端打点_渗透测试——XSS利用工具BeEF攻击演示
  3. Windows内核符号表学习总结
  4. php表单时间转换为时间戳-175
  5. 《Go语言圣经》学习笔记 第五章函数
  6. 「单点登录与权限管理」系列概述
  7. 计算机网络应用押韵句,现代汉语练习题
  8. mysql中值换行显示为乱码_MySQL数据移植中的乱码问题
  9. windows无法打开所需的文件C:\Sources\install.wim。
  10. 使用R7版NDK搭建Android开发环境[不使用Cgywin]
  11. vue之神奇的动态按钮
  12. 兰州大学计算机英语分数线,兰州大学09MBA分数线A线140综合72英语42
  13. 《匠人手记》里的10种软件滤波
  14. linux修改文件类型和权限
  15. 古画会唱歌/图片说话对口型视频教程+工具素材
  16. Java 习题 (12)
  17. Linux性能检查命令总结
  18. 文本工具来查看、分析、统计,比较
  19. 一款最好用的windows文件管理器
  20. 为将来而记下的过去——扭曲的爱,病态的教育

热门文章

  1. NHibernate.Profiler 使用教程
  2. ASP.NET 配置文件的层次和继承关系
  3. android 点击扩散,Android水波纹扩散效果
  4. python 为什么每次代码运行时间不同-python – 气流在同一个dag的不同时间运行任......
  5. 如何打开python的交互窗口-Python多版本情况下四种快速进入交互式命令行的操作技巧...
  6. python语言安装-Python安装
  7. python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?
  8. python装饰器类-Python 装饰器装饰类中的方法
  9. python介绍和用途-Python对象与引用的介绍
  10. python报班大概多少钱-python培训班价格大概多少?