__pmParseCtime — convert ctime(3) string to tm structure

C Synopsis

#include "pmapi.h"
#include "libpcp.h"

int __pmParseCtime(const char *string, struct tm *rslt, char **errmsg);

cc ... -lpcp

Caveat

This documentation is intended for internal Performance Co-Pilot (PCP) developer use.

These interfaces are not part of the PCP APIs that are guaranteed to remain fixed across releases, and they may not work, or may provide different semantics at some point in the future.

Description

__pmParseCtime reverses the asctime(3) function.  It accepts a string specifying a time, and fills in the given tm structure.

string is either a fully specified date and time in the format Day MMM DD HH:MM:SS YYYY (e.g "Mon Mar  4 13:07:47 1996") or a partially specified date and time like "1996", "Mar 1996", "Mar 4 1996", "Mar", "13:07:47", "13:07", "Mar 4 13:07:47",.... For a partially specified date and time, the order of the fields must be preserved and missing fields are filled in from the current date and time.

The seconds component (SS) may be a floating point number, for example the time "13:07:47.5".  The 12 hour clock is also supported, so "13:07" and "1:07 pm" are equivalent.

__pmParseCtime returns 0 if successful.  It returns -1 and a dynamically allocated error message string in errmsg, if the given string does not parse.  Be sure to free(3) the error message string.

The tm structure returned in rslt should only be used as an argument to the __pmConvertTime function, as it contains encoded information that will only be correctly interpreted by __pmConvertTime.

See Also

PMAPI(3), pmParseInterval(3), __pmConvertTime(3) and __pmParseTime(3).

Referenced By

__pmConvertTime(3), __pmParseTime(3).

The man page __pmparsectime(3) is an alias of __pmParseCtime(3).

PCP Performance Co-Pilot