程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> gethostid 的實現

gethostid 的實現

編輯:C++入門知識

print?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; 

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)

 

 

 

 


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved