DOKK / manpages / debian 11 / libpcp3-dev / pmtimevalAdd.3.en
PMTIMEVALNOW(3) Library Functions Manual PMTIMEVALNOW(3)

pmtimevalNow, pmtimevalInc, pmtimevalDec, pmtimevalAdd, pmtimevalSub, pmtimevalToReal, pmtimevalFromReal, pmPrintStamp, pmPrintHighResStamp - helper routines for time stored as a struct timeval

#include <pcp/pmapi.h>

void pmtimevalNow(struct timeval *tv);
void pmtimevalInc(struct timeval *ap, const struct timeval *bp);
void pmtimevalDec(struct timeval *ap, const struct timeval *bp);
double pmtimevalAdd(const struct timeval *ap, const struct timeval *bp);
double pmtimevalSub(const struct timeval *ap, const struct timeval *bp);
double pmtimevalToReal(const struct timeval *val);
void pmtimevalFromReal(double secs, struct timeval *val);
void pmPrintStamp(FILE *f, const struct timeval *tp);
void pmPrintHighResStamp(FILE *f, const struct timespec *tp);

cc ... -lpcp

pmtimevalNow is a platform-independent method that returns the current system time since the Epoch in tv.

pmtimevalInc adds the time in ap to the time in bp and stores the result in ap. Similarly pmtimevalDec subtracts the time in bp from the time in ap and stores the result in ap.

pmtimevalAdd (and pmtimevalSub) add (and subtract) times and return the result as a double value. The time in the ap argument is not changed.

pmtimevalToReal converts the time in tp to an equivalent double value. pmtimevalFromReal provides the reverse conversion, taking the time in secs and returning the equivalent time in val.

pmPrintStamp prints the timestamp from tp on the stream f in the local time (as returned by pmLocaltime(3)) in the format HH:MM:SS.XXX. pmPrintHighResStamp performs a similar service, but for a struct timespec and reports the timestamp to nanosecond precision.

gettimeofday(2), time(2), PMAPI(3) and pmLocaltime(3).

PCP Performance Co-Pilot