gethstnm.c 466 B

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