mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-14 07:46:28 +02:00
30 lines
490 B
C
30 lines
490 B
C
#include <sys/types.h>
|
|
|
|
int gethostname ();
|
|
char *xmalloc ();
|
|
char *xrealloc ();
|
|
|
|
#define INITIAL_HOSTNAME_LENGTH 33
|
|
|
|
char *
|
|
xgethostname ()
|
|
{
|
|
char *hostname;
|
|
size_t size;
|
|
int err;
|
|
|
|
size = INITIAL_HOSTNAME_LENGTH;
|
|
while (1)
|
|
{
|
|
hostname = xmalloc (size);
|
|
hostname[size - 1] = '\0';
|
|
err = gethostname (hostname, size);
|
|
if (err || hostname[size - 1] == '\0')
|
|
break;
|
|
size *= 2;
|
|
hostname = xrealloc (hostname, size);
|
|
}
|
|
|
|
return hostname;
|
|
}
|