以下是例程。編譯後隻需要調用就可以了。程式很簡單,看一下就知道uname()如何使用了。其中,涉及到一個utsname的結構。先解釋一下:
struct utsname{
char sysname[_UTS_NAMESIZE];
char nodename[_UTS_NODESIZE];
char release[_UTS_NAMESIZE];
char version[_UTS_NAMESIZE];
char machine[_UTS_NAMESIZE];
};
#include <sys/utsname.h>
#include <netdb.h>
#include <sys/socket.h>
int main(int argc, char **argv)
{
struct hostent *hptr;
struct utsname myname;
char **pptr;
char str[32];
if(uname(&myname)<0)
{
printf("uname calling error/n");
return 1;
}
printf("localhost name:%s/n",myname.nodename);
if( (hptr = gethostbyname(myname.nodename)) == NULL)
{
printf("gethostbyname calling error/n");
return 1;
}
pptr=hptr->h_addr_list;
for(;*pptr!=NULL;pptr++)
printf(" address:%s/n", inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str)));
return 0;
}