TM(3)

πŸ“¦ version 93vu, in opensuse-leap 16.0

🌸 NAME 🌸

okay so bestie, welcome to TM(3) from the Library Functions Manual πŸ’–. This page is all about tv β€” high resolution time support β€” and it’s lowkey iconic for anyone doing time stuff. Periodt.

✨ SYNOPSIS ✨

#include <tv.h>

πŸ’… DESCRIPTION πŸ’…

The tv library supports high resolution Tv_t time specifications. Slay.

🫢 Tv_t

Tv_t contains these elements:

  • unsigned _ast_int4_t tv_sec β€” seconds since the epoch.
  • unsigned _ast_int4_t tv_nsec β€” nanosecond resolution.

In practice, resolution is much coarser than 1 nanosecond. Systems that only support 1 second resolution always set tv_nsec to 0.

⏰ int tvgettime(Tv_t* tv)

Sets tv to the current time. 0 is returned on success, -1 on error.

πŸ•°οΈ int tvsettime(const Tv_t* tv)

Sets the system time to tv. The caller must have sufficient privilege. 0 is returned on success, -1 on error.

πŸ’€ int tvcmp(const Tv_t* av, const Tv_t* bv)

Compares the times av and bv and returns -1 if av is less than bv, 0 if av is equal to bv, and 1 if av is greater than bv.

πŸ¦‹ the tvget* macros, literally

time_t tvgetatime(Tv_t* tv, const struct stat* st)
time_t tvgetmtime(Tv_t* tv, const struct stat* st)
time_t tvgetctime(Tv_t* tv, const struct stat* st)

These macros set tv to the st access, modify, or change time, respectively. The seconds portion of tv is returned.

πŸŽ€ the tvset* macros

time_t tvsetatime(Tv_t* tv, struct stat* st)
time_t tvsetmtime(Tv_t* tv, struct stat* st)
time_t tvsetctime(Tv_t* tv, struct stat* st)

These macros set the st access, modify, or change time, respectively, to tv. The seconds portion of tv is returned.

🌈 int tvtouch(const char* path, const Tv_t* av, const Tv_t* mv, const Tv_t* cv, int copy)

Sets the file path access time from av, modify time from mv, and change time from cv. Any of av, mv, and cv may be 0; the corresponding file time will retain the previous value if path exists and copy is 1; otherwise the corresponding file time will be set to the current time. 0 is returned on success, -1 on error.

πŸŒ™ int tvsleep(const Tv_t* tv, Tv_t* rv)

Pauses execution for tv time. 0 is returned if the full tv amount has expired. Otherwise -1 is returned and rv, if not 0, is set to the sleep time remaining.

πŸ”₯ RETURN VALUE πŸ”₯

Except for tvcmp(), an error return of -1 also sets errno to the corresponding error code.

πŸ‘‘ SEE ALSO πŸ‘‘

tm(3) β€” go give it a lil look, iykyk 🫢


Final sign-off bestie: this is the TM(3) page, and the footer is literally just TM(3) β€” no extra source/version or date info, so that’s the whole vibe πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from