PMGETARCHIVEEND(3)        Library Functions Manual        PMGETARCHIVEEND(3)

NAME         top

       pmGetArchiveEnd  -  locate  logical  end of file for a set of archive

C SYNOPSIS         top

       #include <pcp/pmapi.h>

       int pmGetArchiveEnd(struct timeval *tvp);

       cc ... -lpcp

DESCRIPTION         top

       Assuming the current PMAPI context is associated with a set of
       archive logs, 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 tvp.  This timestamp may be
       passed to pmSetMode(3) to reliably position the context at the last
       valid log record, e.g. in preparation for subsequent reading in
       reverse chronological order.

       For archive logs that are not concurrently being written, the
       physical end of file and the logical end of file are co-incident.
       However if an archive log 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 returns 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 tvp is well-

       pmGetArchiveEnd preserves the positioning state of the log file prior
       to this function call.


       Environment variables with the prefix PCP_ are used to parameterize
       the file and directory names used by PCP.  On each installation, the
       file /etc/pcp.conf contains the local values for these variables.
       The $PCP_CONF variable may be used to specify an alternative
       configuration file, as described in pcp.conf(5).  Values for these
       variables may be obtained programmatically using the pmGetConfig(3)

SEE ALSO         top

       PMAPI(3), pmFetch(3), pmFetchArchive(3), pmGetArchiveLabel(3),
       pmGetConfig(3), pmSetMode(3), pcp.conf(5) and pcp.env(5).

DIAGNOSTICS         top

              the current PMAPI context is either invalid, or not associated
              with an set of archive logs

              the set of archives is sufficiently damaged, that not a single
              valid record can be found

COLOPHON         top

       This page is part of the PCP (Performance Co-Pilot) project.
       Information about the project can be found at ⟨⟩.
       If you have a bug report for this manual page, send it to  This page was obtained from the project's upstream
       Git repository ⟨⟩ on
       2017-09-15.  If you discover any rendering problems in this HTML ver‐
       sion 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 man‐
       ual page), send a mail to

Performance Co-Pilot                 PCP                  PMGETARCHIVEEND(3)

Pages that refer to this page: pmparsetime(3)pmparsetimewindow(3)