pmstrncat(3) — Linux manual page

NAME | C SYNOPSIS | DESCRIPTION | HISTORY | SEE ALSO | COLOPHON

PMSTRNCAT(3) Library Functions Manual PMSTRNCAT(3)

NAME top

 pmstrncat - safe string concatenation

C SYNOPSIS top

 #include <pcp/pmapi.h>
 int pmstrncat(char *dest, size_t destlen, char *src);
 cc ... -lpcp

DESCRIPTION top

 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 pmstrncatdestlen 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.

HISTORY top

 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.

SEE ALSO top

 PMAPI(3), pmstrncpy(3), strncat(3) and strncpy(3).

COLOPHON top

 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 PMSTRNCAT(3)

Pages that refer to this page: pmstrncpy(3)



HTML rendering created 2025年09月06日 by Michael Kerrisk, author of The Linux Programming Interface.

For details of in-depth Linux/UNIX system programming training courses that I teach, look here.

Hosting by jambit GmbH.

Cover of TLPI

Web Analytics Made Easy - StatCounter

AltStyle によって変換されたページ (->オリジナル) /