Section (3) stpncpy

Linux manual pages Section 3  


stpncpy — copy a fixed-size string, returning a pointer to its end


#include <string.h>
char *stpncpy( char *dest,
  const char *src,
  size_t n);
[Note] Note
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
Since glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Before glibc 2.10:


The stpncpy() function copies at most n characters from the string pointed to by src, including the terminating null byte (_zsingle_quotesz__zsingle_quotesz_), to the array pointed to by dest. Exactly n characters are written at dest. If the length strlen(src) is smaller than n, the remaining characters in the array pointed to by dest are filled with null bytes (_zsingle_quotesz__zsingle_quotesz_), If the length strlen(src) is greater than or equal to n, the string pointed to by dest will not be null-terminated.

The strings may not overlap.

The programmer must ensure that there is room for at least n characters at dest.


stpncpy() returns a pointer to the terminating null byte in dest, or, if dest is not null-terminated, dest+n.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
stpncpy() Thread safety MT-Safe


This function was added to POSIX.1-2008. Before that, it was a GNU extension. It first appeared in version 1.07 of the GNU C library in 1993.


strncpy(3), wcpncpy(3)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at−pages/.

  Copyright (c) Bruno Haible <>

This is free documentation; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.

References consulted:
  GNU glibc-2 source code and manual

Corrected, aeb, 990824