gethostid 的实现
来源:互联网 发布:在爱奇艺网络剧工作 编辑:程序博客网 时间:2024/06/05 15:59
static long gethostid(void){ long result = 0; char name[1024]; struct hostent *hent = NULL; char **p = NULL; struct in_addr in; if (gethostname(name, 1024) == 0) {if ((hent = gethostbyname(name)) != NULL){ p = hent->h_addr_list; if (p && *p) { (void) memcpy(&in.s_addr, *p, sizeof(in.s_addr)); result = (long)in.s_addr; } } } return result;}
gethostid
man page 上这样子描述
GETHOSTID(2) Linux Programmer's Manual GETHOSTID(2)
NAME
gethostid, sethostid - get or set the unique identifier of the current host
SYNOPSIS
#include <unistd.h>
long gethostid(void);
int sethostid(long hostid);
DESCRIPTION
Get or set a unique 32-bit identifier for the current machine. The 32-bit identifier is intended to be unique among all UNIX systems in existence. This
normally resembles the Internet address for the local machine, as returned by gethostbyname(3), and thus usually never needs to be set.
The sethostid() call is restricted to the superuser.
The hostid argument is stored in the file /etc/hostid.
RETURN VALUE
gethostid() returns the 32-bit identifier for the current host as set by sethostid(2).
CONFORMING TO
4.2BSD; these functions were dropped in 4.4BSD. SVr4 includes gethostid() but not sethostid(). POSIX.1-2001 specifies gethostid() but not sethostid().
FILES
/etc/hostid
EXAMPLE
id = gethostid ();
/* This is a no-op unless unsigned int is wider than 32 bits. */
id &= 0xffffffff;
SEE ALSO
hostid(1), gethostbyname(3)
在移植Linux应用到其他系统时,因为没有这个函数,往往要自己实现这个函数,下面给出一个实现方法:
- gethostid 的实现
- 三子棋的实现的实现的实现
- JAVA实现的时钟实现
- 模态框的的实现
- 杀毒软件的简单实现的简单实现
- android的实现电话号码的实现
- 音频的实现音乐声音的实现
- malloc的实现、内存池的实现
- 异形窗体的实现
- 个性化的分页实现
- ASP数据库连接的实现
- Struts单选框的实现
- 梅西迭代算法的实现
- 翻页功能的实现
- Struts,MVC 的实现
- 实现JavaScript的继承
- 接口的显示实现
- TTerm的实现( 一)
- 关于td中的width不起作用的问题。
- 流行的Java EE框架组合
- 报表/图表设计-----FusionCharts
- 连接池
- go语言学习---数组和slice
- gethostid 的实现
- java中的内部类
- 关于泛型队列的简单建立与使用
- 三层和MVC 初识篇
- java IO简介
- linux shell if 条件表达式总结
- JavaScript函数
- js变量以及其作用域详解
- Poj 2002 && 3432