|
NAME | C SYNOPSIS | DESCRIPTION | COMPATIBILITY | DIAGNOSTICS | PCP ENVIRONMENT | SEE ALSO | COLOPHON |
|
|
|
PMGETARCHIVEEND(3) Library Functions Manual PMGETARCHIVEEND(3)
pmGetArchiveEnd - locate logical end of file for a set of archives
#include <pcp/pmapi.h>
int pmGetArchiveEnd(struct timespec *tp);
cc ... -lpcp
Assuming the current PMAPI context is associated with a set of
archives, pmGetArchiveEnd will attempt to find the logical end of
file (after the last complete record in the set of archives), and
return the last recorded timestamp via tp. This timestamp may be
passed to pmSetMode(3) to reliably position the context at the
last valid archive record, e.g. in preparation for subsequent
reading in reverse chronological order.
For archives that are not concurrently being written, the physical
end of file and the logical end of file are co-incident. However
if an archive is being written by pmlogger(1) at the same time an
application is trying to read the archive, the logical end of file
may be before the physical end of file due to write buffering that
is not aligned with the logical record boundaries.
pmGetArchiveEnd return an error less than zero if the context is
neither valid, nor associated with a set of archives, or the set
of archives is seriously corrupted. Otherwise, the return value
is 0 if there has been no change of state since the last call, or
1 if the logical end of file has advanced since the last call.
In the absence of an error, the result returned via tp is well-de‐
fined.
Both pmGetArchiveEnd preserve the positioning state of the archive
file prior to this function call.
Prior to PCP 7.0 and libpcp.so.4 the tp argument was a struct
timeval. To support PMAPI transition, the old interface and se‐
mantics can be used if applications are linked with libpcp.so.3 or
recompiled with -DPMAPI_VERSION=2.
For a time in PCP 6.x there was a routine with the same semantics
as the current pmGetArchiveEnd called pmGetHighResArchiveEnd, al‐
though this is now deprecated and compile-time support for pmGetH‐
ighResArchiveEnd will be removed in a future release.
PM_ERR_NOCONTEXT
the current PMAPI context is either invalid, or not associ‐
ated with a set of archives
PM_ERR_LOGREC
the set of archives is sufficiently damaged, that not a
single valid record can be found
Environment variables with the prefix PCP_ are used to parameter‐
ize the file and directory names used by PCP. On each installa‐
tion, the file /etc/pcp.conf contains the local values for these
variables. The $PCP_CONF variable may be used to specify an al‐
ternative configuration file, as described in pcp.conf(5). Values
for these variables may be obtained programmatically using the
pmGetConfig(3) function.
PMAPI(3), pmFetch(3), pmFetchArchive(3), pmGetArchiveLabel(3),
pmGetConfig(3), pmSetMode(3), pcp.conf(5) and pcp.env(5).
This page is part of the PCP (Performance Co-Pilot) project. In‐
formation about the project can be found at ⟨http://www.pcp.io/⟩.
If you have a bug report for this manual page, send it to
pcp@groups.io. This page was obtained from the project's upstream
Git repository ⟨https://github.com/performancecopilot/pcp.git⟩ on
2025-08-11. (At that time, the date of the most recent commit
that was found in the repository was 2025-08-11.) If you discover
any rendering problems in this HTML version of the page, or you
believe there is a better or more up-to-date source for the page,
or you have corrections or improvements to the information in this
COLOPHON (which is not part of the original manual page), send a
mail to man-pages@man7.org
Performance Co-Pilot PCP PMGETARCHIVEEND(3)
Pages that refer to this page: __pmparsetime(3), pmparsetimewindow(3), pmsetmode(3)