Provided by: libpcp4-dev_7.0.2-1_amd64 bug

NAME

       pmstrncpy - safe string copy

C SYNOPSIS

       #include <pcp/pmapi.h>

       int pmstrncpy(char *dest, size_t destlen, char *src);

       cc ... -lpcp

DESCRIPTION

       pmstrncpy is safe string copying routine with semantics similar to strncpy(3).

       The main differences between pmstrncpy and strncpy(3) are:
       • src must be null-byte terminated for pmstrncpypmstrncpy ensures that dest is null-byte terminated, even when src is larger than destlen; this may re‐
         sult in truncated copying of src
       • when  src is shorter than destlen pmstrncpy does not null-byte fill the remainder of dest after src has
         been copied and null-byte terminated
       • the length argument has the same semantics for pmstrncpy and pmstrncat(3), unlike strncpy(3) and  strn‐
         cat(3).
       • the return value from pmstrncpy is useful
       • the  order of the arguments for pmstrncpy has been deliberately changed from the order of the arguments
         for strncpy(3) to avoid accidental misuse that a compiler can easily detect

       On success, pmstrncpy returns 0, else -1 indicates that src is too big and the result been  truncated  to
       ensure dest has not been overrun.

HISTORY

       strncpy(3)  first  appeared in Edition 7 AT&T Unix around 1979.  It was specifically crafted to copy file
       names from component names from on-disk directory entries that were of a fixed maximum size and may  have
       zero, one or more trailing null-bytes

       The  subsequent  attempts to use strncpy(3) for more generally string copying operations has been fraught
       with abuse and security issues; pmstrncpy is an attempt to address these problems.

SEE ALSO

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

Performance Co-Pilot                                   PCP                                          PMSTRNCPY(3)