1#include <sys/utsname.h>
2#include <unistd.h>
3
4int gethostname(char* name, size_t len) {
5    size_t i;
6    struct utsname uts;
7    if (uname(&uts))
8        return -1;
9    if (len > sizeof uts.nodename)
10        len = sizeof uts.nodename;
11    for (i = 0; i < len && (name[i] = uts.nodename[i]); i++)
12        ;
13    if (i == len)
14        name[i - 1] = 0;
15    return 0;
16}
17