Manual Page Result
0
Command: strncpy | Section: 3 | Source: OpenBSD | File: strncpy.3
STRNCPY(3) FreeBSD Library Functions Manual STRNCPY(3)
NAME
strncpy - copy part of a string to another
SYNOPSIS
#include <string.h>
char *
strncpy(char *dst, const char *src, size_t len);
DESCRIPTION
The strncpy() function copies not more than len characters from the
string src to the buffer dst. If src is less than len characters long,
it fills the remaining buffer with `\0' characters. If the length of src
is greater than or equal to len, dst will not be NUL-terminated.
strncpy() only NUL terminates the destination string when the length of
the source string is less than the length parameter.
If the src and dst strings overlap, the behavior is undefined.
RETURN VALUES
The strncpy() function returns dst.
EXAMPLES
The following sets chararray to "abc\0\0\0":
(void)strncpy(chararray, "abc", 6);
The following sets chararray to "abcdef", without a NUL-terminator:
(void)strncpy(chararray, "abcdefgh", 6);
The following sequence copies as many characters from input to buf as
will fit, and then NUL terminates the result by hand:
char buf[BUFSIZ];
(void)strncpy(buf, input, sizeof(buf) - 1);
buf[sizeof(buf) - 1] = '\0';
By now it is clear that strncpy is dangerously easy to misuse. The
strlcpy(3) function is safer for this kind of operation:
if (strlcpy(buf, input, sizeof(buf)) >= sizeof(buf))
goto toolong;
SEE ALSO
strlcpy(3), wcscpy(3), wcslcpy(3)
STANDARDS
The strncpy() function conforms to ANSI X3.159-1989 ("ANSI C89").
HISTORY
The strncpy() function first appeared in Version 7 AT&T UNIX.
FreeBSD 14.1-RELEASE-p8 April 19, 2014 FreeBSD 14.1-RELEASE-p8