### 6.20 `wcpncpy`—copy part of a wide-character string returning a pointer to its end

Synopsis

         #include <wchar.h>
         wchar_t *wcpncpy(wchar_t *__restrict s1,
             const wchar_t *__restrict s2, size_t n);

Description
The `wcpncpy` function copies not more than n wide-character codes (wide-character codes that follow a null wide-character code are not copied) from the array pointed to by s2 to the array pointed to by s1. If copying takes place between objects that overlap, the behaviour is undefined.

If the array pointed to by s2 is a wide-character string that is shorter than n wide-character codes, null wide-character codes are appended to the copy in the array pointed to by s1, until n wide-character codes in all are written.

Returns
The `wcpncpy` function returns s1; no return value is reserved to indicate an error.

Portability
`wcpncpy` is ISO/IEC 9899/AMD1:1995 (ISO C).

No supporting OS subroutines are required.