1PMGETARCHIVEEND(3) Library Functions Manual PMGETARCHIVEEND(3)
2
3
4
6 pmGetArchiveEnd, pmGetHighResArchiveEnd - locate logical end of file
7 for a set of archive logs
8
10 #include <pcp/pmapi.h>
11
12 int pmGetArchiveEnd(struct timeval *tp);
13 int pmGetHighResArchiveEnd(struct timespec *tp);
14
15 cc ... -lpcp
16
18 Assuming the current PMAPI context is associated with a set of archive
19 logs, pmGetArchiveEnd and pmGetHighResArchiveEnd will attempt to find
20 the logical end of file (after the last complete record in the set of
21 archives), and return the last recorded timestamp via tp. This time‐
22 stamp may be passed to pmSetMode(3) or pmSetHighResMode(3) to reliably
23 position the context at the last valid log record, e.g. in preparation
24 for subsequent reading in reverse chronological order.
25
26 For archive logs that are not concurrently being written, the physical
27 end of file and the logical end of file are co-incident. However if an
28 archive log is being written by pmlogger(1) at the same time an appli‐
29 cation is trying to read the archive, the logical end of file may be
30 before the physical end of file due to write buffering that is not
31 aligned with the logical record boundaries.
32
33 pmGetArchiveEnd and pmGetHighResArchiveEnd return an error less than
34 zero if the context is neither valid, nor associated with a set of ar‐
35 chives, or the set of archives is seriously corrupted. Otherwise, the
36 return value is 0 if there has been no change of state since the last
37 call, or 1 if the logical end of file has advanced since the last call.
38
39 In the absence of an error, the result returned via tp is well-defined.
40
41 Both pmGetArchiveEnd and pmGetHighResArchiveEnd preserve the position‐
42 ing state of the log file prior to this function call.
43
45 PM_ERR_NOCONTEXT
46 the current PMAPI context is either invalid, or not associated
47 with an set of archive logs
48
49 PM_ERR_LOGREC
50 the set of archives is sufficiently damaged, that not a single
51 valid record can be found
52
54 Environment variables with the prefix PCP_ are used to parameterize the
55 file and directory names used by PCP. On each installation, the file
56 /etc/pcp.conf contains the local values for these variables. The
57 $PCP_CONF variable may be used to specify an alternative configuration
58 file, as described in pcp.conf(5). Values for these variables may be
59 obtained programmatically using the pmGetConfig(3) function.
60
62 PMAPI(3), pmFetch(3), pmFetchArchive(3), pmGetArchiveLabel(3), pmGet‐
63 Config(3), pmGetHighResArchiveLabel(3), pmFetchHighRes(3), pmFetchHigh‐
64 ResArchive(3), pmSetModeHighRes(3), pmSetMode(3), pcp.conf(5) and
65 pcp.env(5).
66
67
68
69Performance Co-Pilot PCP PMGETARCHIVEEND(3)