1hdr time 2lib clock_settime,gettimeofday,settimeofday,stime,utimes 3lib nanosleep,usleep 4lib utimensat -D_ATFILE_SOURCE sys/stat.h note{ complete utimensat implementation }end link{ 5 #include <fcntl.h> 6 static struct timespec ts[2]; 7 int 8 main() 9 { 10 ts[0].tv_nsec = UTIME_NOW; 11 ts[1].tv_nsec = UTIME_OMIT; 12 return utimensat(AT_FDCWD, ".", ts, AT_SYMLINK_NOFOLLOW) != 0; 13 } 14}end 15 16if ! mem timeval.tv_sec sys/time.h { 17 struct timeval 18 { 19 time_t tv_sec; 20 time_t tv_usec; 21 }; 22} 23endif 24 25lib clock_gettime execute{ 26 #include <time.h> 27 int 28 main() 29 { 30 struct timespec tv; 31 return clock_gettime(CLOCK_REALTIME, &tv) != 0; 32 } 33}end 34 35lib utimets link{ 36 #include <time.h> 37 #include <sys/time.h> 38 static struct timespec tv; 39 int 40 main() 41 { 42 return utimets(".", &tv) != 0; 43 } 44}end 45 46tst - -DN=1 - -DN=2 - -DN=3 - -DN=4 output{ 47 #include <sys/types.h> 48 #include <sys/time.h> 49 int 50 main() 51 { 52 struct timeval tv; 53#if N == 1 54 struct timezone tz; 55 if (gettimeofday(&tv, (struct timezone*)0) < 0) 56 return 1; 57 printf("#define tmgettimeofday(p) gettimeofday(p,(struct timezone*)0)\n"); 58#if _lib_settimeofday 59 printf("#define tmsettimeofday(p) settimeofday(p,(struct timezone*)0)\n"); 60#endif 61#endif 62#if N == 2 63 if (gettimeofday(&tv, (void*)0) < 0) 64 return 1; 65 printf("#define tmgettimeofday(p) gettimeofday(p,(void*)0)\n"); 66#if _lib_settimeofday 67 printf("#define tmsettimeofday(p) gettimeofday(p,(void*)0)\n"); 68#endif 69#endif 70#if N == 3 71 if (gettimeofday(&tv) < 0) 72 return 1; 73 printf("#define tmgettimeofday(p) gettimeofday(p)\n"); 74#if _lib_settimeofday 75 printf("#define tmsettimeofday(p) settimeofday(p)\n"); 76#endif 77#endif 78 return 0; 79 } 80}end 81