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