.
[pspp] / lib / xgethostname.c
1 #include <sys/types.h>
2
3 int gethostname ();
4 char *xmalloc ();
5 char *xrealloc ();
6
7 #define INITIAL_HOSTNAME_LENGTH 33
8
9 char *
10 xgethostname ()
11 {
12   char *hostname;
13   size_t size;
14   int err;
15
16   size = INITIAL_HOSTNAME_LENGTH;
17   while (1)
18     {
19       hostname = xmalloc (size);
20       hostname[size - 1] = '\0';
21       err = gethostname (hostname, size);
22       if (err || hostname[size - 1] == '\0')
23         break;
24       size *= 2;
25       hostname = xrealloc (hostname, size);
26     }
27
28   return hostname;
29 }