GRASS GIS 8 Programmer's Manual 8.4.1(2025)-45ca3179ab
Loading...
Searching...
No Matches
mach_name.c
Go to the documentation of this file.
1#include <unistd.h>
2#include <grass/gis.h>
3#include <grass/config.h>
4#ifdef HAVE_SYS_UTSNAME_H
5#include <sys/utsname.h>
6#endif
7
8/* this routine returns a name for the machine
9 * it returns the empty string, if this info
10 * not available (it never returns a NULL pointer)
11 *
12 * the name is stored in a static array and the pointer to this
13 * array is returned.
14 *
15 */
16
17const char *G__machine_name(void)
18{
19 static int initialized;
20 static char name[128];
21
22 if (G_is_initialized(&initialized))
23 return name;
24
25#if defined(HAVE_GETHOSTNAME)
26 gethostname(name, sizeof(name));
27 name[sizeof(name) - 1] = 0; /* make sure NUL terminated */
28#elif defined(HAVE_SYS_UTSNAME_H)
29 {
30 struct utsname attname;
31
32 uname(&attname);
33 strcpy(name, attname.nodename);
34 }
35#else
36 strcpy(name, "unknown");
37#endif
38
39 G_initialize_done(&initialized);
40 return name;
41}
void G_initialize_done(int *p)
Definition counter.c:77
int G_is_initialized(int *p)
Definition counter.c:60
const char * G__machine_name(void)
Definition mach_name.c:17
const char * name
Definition named_colr.c:6
#define strcpy
Definition parson.c:62