Xstat.c 791 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <sys/types.h>
  2. #include <sys/stat.h>
  3. static Xcvt();
  4. int
  5. stat(path, buf)
  6. char *path;
  7. struct stat *buf;
  8. {
  9. char Xbuf[100];
  10. int retval;
  11. retval = _stat(path, Xbuf);
  12. Xcvt(Xbuf, (char *)buf);
  13. return retval;
  14. }
  15. int
  16. lstat(path, buf)
  17. char *path;
  18. struct stat *buf;
  19. {
  20. char Xbuf[100];
  21. int retval;
  22. retval = _lstat(path, Xbuf);
  23. Xcvt(Xbuf, (char *)buf);
  24. return retval;
  25. }
  26. int
  27. fstat(fd, buf)
  28. int fd;
  29. struct stat *buf;
  30. {
  31. char Xbuf[100];
  32. int retval;
  33. retval = __fstat(fd, Xbuf);
  34. Xcvt(Xbuf, (char *)buf);
  35. return retval;
  36. }
  37. static
  38. Xcvt(buf, statbuf)
  39. char *buf, *statbuf;
  40. {
  41. register char *s, *t;
  42. register int i;
  43. s = buf; t = statbuf;
  44. *t++ = *s++; *t++ = *s++;
  45. *t++ = 0; *t++ = 0;
  46. for (i = 14; i; i--) *t++ = *s++;
  47. *t++ = 0; *t++ = 0;
  48. for (i = 44; i; i--) *t++ = *s++;
  49. }