libdm.c 464 B

1234567891011121314151617181920212223
  1. #include <time.h>
  2. #include <sys/time.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <unistd.h>
  6. void printdate(FILE *fd)
  7. {
  8. struct timespec tp;
  9. char buf[64U] = "!DATE!";
  10. size_t tail;
  11. if (!clock_gettime(CLOCK_REALTIME, &tp)) {
  12. tail = strftime(buf, sizeof buf, "%x %X", localtime(&tp.tv_sec));
  13. if ((tail > 0) && (sizeof buf < tail)) {
  14. snprintf(buf + tail, (sizeof buf) - tail, ".%03ld", (tp.tv_nsec / 1000000));
  15. }
  16. }
  17. fprintf(fd, "%s: ", buf);
  18. }