newlib-cygwin/newlib/libc/sys/linux/gethostname.c

31 lines
474 B
C

/* Copyright 2002, Red Hat Inc. */
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <sys/utsname.h>
int
gethostname (char *name, size_t len)
{
struct utsname nodebuf;
size_t nodelen;
if (uname (&nodebuf))
return -1;
nodelen = strlen (nodebuf.nodename) + 1;
if (len < nodelen)
memcpy (name, nodebuf.nodename, len);
else
memcpy (name, nodebuf.nodename, nodelen);
if (nodelen > len)
{
errno = ENAMETOOLONG;
return -1;
}
return 0;
}