gethstnm.c 380 B

123456789101112131415161718192021222324
  1. #include <string.h>
  2. #include <unistd.h>
  3. #include <sys/utsname.h>
  4. #include <errno.h>
  5. int
  6. gethostname(char *name, size_t len)
  7. {
  8. struct utsname uts;
  9. if (name == NULL) {
  10. __set_errno(EINVAL);
  11. return -1;
  12. }
  13. if (uname(&uts) == -1) return -1;
  14. if (strlen(uts.nodename)+1 > len) {
  15. __set_errno(EINVAL);
  16. return -1;
  17. }
  18. strcpy(name, uts.nodename);
  19. return 0;
  20. }