网络编程学习笔记(uname函数)
来源:互联网 发布:数据安全防护体系 编辑:程序博客网 时间:2024/05/16 05:23
函数uname返回当前主机的名字。经常与gethostbyname一起用来确定本地主机的IP地址。其原型为:
#include <sys/utsname.h>int uname(struct utsname *name);
成功返回非0,失败返回-1
此函数填装结构utsnamee,其结构体定义为:
#define UTS_NAMESIZE 16#define UTS_NODESIZE 256struct utsname { char sysname[_UTS_NAMESIZE];//name of the oprating system char nodename[_UTS_NODESIZE];//name of this node char release[_UTS_NAMESIZE];//O.S release level char version[_UTS_NAMESIZE];// O.S version level char 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;}
输出为:
0 0
- 网络编程学习笔记(uname函数)
- linux学习笔记--uname命令
- 网络编程学习笔记(poll函数)
- 网络编程学习笔记(gethostbyname函数)
- 网络编程学习笔记(gethostbyaddr函数)
- 网络编程学习笔记(gethostname函数)
- 网络编程学习笔记(getaddrinfo函数)
- 网络编程学习笔记(gai_strerror函数)
- 网络编程学习笔记(freeaddrinfo函数)
- 网络编程学习笔记(tcp_connect函数)
- 网络编程学习笔记(tcp_listen函数)
- 网络编程学习笔记(udp_client函数)
- 网络编程学习笔记(udp_connect函数)
- 网络编程学习笔记(udp_server函数)
- 网络编程学习笔记(getnameinfo函数)
- 网络编程学习笔记(socketpair函数)
- 网络编程学习笔记(shutdown函数)
- 网络编程学习笔记
- 我的作品们
- 结构体含CString成员
- [安卓]Android Unable to resolve target 'android-8'
- ZOJ_3279 Ants 线段树+元素位置
- C语言中的函数
- 网络编程学习笔记(uname函数)
- [Leetcode]Triangle
- PE格式文件的代码注入
- 小鸟飞行距离问题
- 前缀、中缀、后缀表达式与二叉树的前序、中序、后序遍历
- 深入理解promise
- iOS中,修改AFNetworking源文件可接收text/plain的方法"Request failed: unacceptable content-type: text/plain"
- Swift基础常识之变量
- iOS 5.0 后UIViewController新增:willMoveToParentViewController和didMoveToParentViewCon