![]()  | 
![]()  | 
![]()  | 
![]()  | 
![]()  | 
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. | 
Copy a string, to a maximum length
#include <string.h>
char* strncpy( char* dst,
               const char* src,
               size_t n );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The strncpy() function copies no more than n characters from the string pointed to by src into the array pointed to by dst.
![]()  | 
Copying of overlapping objects isn't guaranteed to work properly. See the memmove() function if you wish to copy objects that overlap. | 
If the string pointed to by src is shorter than n characters, null characters are appended to the copy in the array pointed to by dst, until n characters in all have been written. If the string pointed to by src is longer than n characters, then the result isn't terminated by a null character.
The same pointer as dst.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( void )
  {
    char buffer[15];
    printf( "%s\n", strncpy( buffer, "abcdefg", 10 ) );
    printf( "%s\n", strncpy( buffer, "1234567",  6 ) );
    printf( "%s\n", strncpy( buffer, "abcdefg",  3 ) );
    printf( "%s\n", strncpy( buffer, "*******",  0 ) );
    return EXIT_SUCCESS;
  }
produces the output:
abcdefg 123456g abc456g abc456g
| Safety: | |
|---|---|
| Cancellation point | No | 
| Interrupt handler | Yes | 
| Signal handler | Yes | 
| Thread | Yes | 
memmove(), strcpy(), strdup(), wcscpy(), wcsncpy(), wmemmove()
![]()  | 
![]()  | 
![]()  | 
![]()  |