|
NAME | C SYNOPSIS | DESCRIPTION | HISTORY | SEE ALSO | COLOPHON |
|
|
|
PMSTRNCAT(3) Library Functions Manual PMSTRNCAT(3)
pmstrncat - safe string concatenation
#include <pcp/pmapi.h>
int pmstrncat(char *dest, size_t destlen, char *src);
cc ... -lpcp
pmstrncat is safe string concatenation routine with semantics sim‐
ilar to strncat(3).
The main differences between pmstrncat and strncat(3) are:
• src must be null-byte terminated for pmstrncat
• destlen is the length of the destination buffer (dest) for pm‐
strncat, not the maximum number of non-null bytes to copy from
src as it is for strncat
• the length argument has the same semantics for pmstrncat and
pmstrncpy(3), unlike strncat(3) and strncpy(3).
• the return value from pmstrncat is useful
• the order of the arguments for pmstrncat has been deliberately
changed from the order of the arguments for strncat(3) to avoid
accidental misuse that a compiler can easily detect
On success, pmstrncat returns 0, else -1 indicates that src is too
big and the result been truncated to ensure dest has no been over‐
run.
strncat(3) first appeared in Edition 7 AT&T Unix around 1979. It
was specifically crafted to construct file pathnames (which needed
to be null-byte terminated) from component names from on-disk di‐
rectory entries that were of a fixed maximum size and may have ze‐
ro, one or more trailing null-bytes
The subsequent attempts to use strncat(3) for more generally
string concatenation operations has been fraught with abuse and
security issues; pmstrncat is an attempt to address these prob‐
lems.
PMAPI(3), pmstrncpy(3), strncat(3) and strncpy(3).
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
[email protected]. 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 [email protected]
Performance Co-Pilot PCP PMSTRNCAT(3)
Pages that refer to this page: pmstrncpy(3)