getdnnm.c 425 B

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