time.c 321 B

1234567891011121314151617181920212223242526
  1. #include <u.h>
  2. #include <libc.h>
  3. static Lock tlock;
  4. long
  5. time(long *tp)
  6. {
  7. char b[20];
  8. static int f = -1;
  9. long t;
  10. lock(&tlock);
  11. memset(b, 0, sizeof(b));
  12. f = open("/dev/time", OREAD|OCEXEC);
  13. if(f >= 0) {
  14. seek(f, 0, 0);
  15. read(f, b, sizeof(b));
  16. }
  17. t = atol(b);
  18. if(tp)
  19. *tp = t;
  20. unlock(&tlock);
  21. return t;
  22. }