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