uname.c 555 B

1234567891011121314151617181920212223242526
  1. extern int errno;
  2. struct utsname {
  3. char sysname[9],nodename[9],release[9],version[9],machine[9];
  4. };
  5. static char def_node[] = "unknown";
  6. static char rel[] = "4.2BSD";
  7. static char ver[] = "vm";
  8. static char mach[] = "sun";
  9. uname(nm)
  10. register struct utsname *nm;
  11. {
  12. register char *p = nm->nodename;
  13. while (p <= nm->release) *p++ = 0;
  14. if (gethostname(nm->nodename,9) == -1) {
  15. strcpy(nm->nodename, def_node);
  16. }
  17. strncpy(nm->sysname,nm->nodename,9);
  18. strncpy(nm->release,rel,9);
  19. strncpy(nm->version,ver,9);
  20. strncpy(nm->machine,mach,9);
  21. return 0;
  22. }