strcpy(9F) Kernel Functions for Drivers strcpy(9F)NAME
strcpy, strlcat, strlcpy, strncat, strncpy, strspn - String operations.
SYNOPSIS
#include <sys/ddi.h>
char *strcpy(char *dst, const char *src);
size_t strlcat(char *dst, const char *src, size_t dstsize);
size_t strlcpy(char *dst, const char *src, size_t dstsize);
char *strncat(char *restrict s1, const char *restrict s2, size_t n);
char *strncpy(char *dst, const char *src, size_t n);
size_t strspn(const char *s1, const char *s2);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).
PARAMETERS
dst, src Pointers to character strings.
s1, s2 Pointers to character strings.
n Count of characters to be copied.
DESCRIPTION
The arguments dst, src, s1 and s2 point to strings. The strcpy(), strl‐
cpy(), strncpy(), strlcat() and strncat() functions all alter their
first argument. These functions do not check for overflow of the array
pointed to by the first argument.
strcpy()
The strcpy() function copies characters in the string src to dst, ter‐
minating at the first null character in src, and returns dst to the
caller. No bounds checking is done.
strncpy()
The strncpy() function copies src to dst, null-padding or truncating at
n bytes, and returns dst. No bounds checking is done.
strlcpy()
The strlcpy() function copies a maximum of dstsize-1 characters (where
dstsize represents the size of the string buffer dst) from src to dst,
truncating src if necessary. The result is always null-terminated. The
function returns strlen(src). Buffer overflow can be checked as fol‐
lows:
if (strlcpy(dst, src, dstsize) >= dstsize)
return (-1);
strncat()
The strncat() function appends a maximum of n characters. The initial
character of s2 overrides the null character at the end of s1.
strlcat()
The strlcat() function appends a maximum of (dstsize-strlen(dst)-1)
characters of src to dst (where dstsize represents the size of the
string buffer dst). If the string pointed to by dst contains a null-
terminated string that fits into dstsize bytes when strlcat() is
called, the string pointed to by dst is a null-terminated string that
fits in dstsize bytes (including the terminating null character) when
it completes, and the initial character of src overrides the null char‐
acter at the end of dst. If the string pointed to by dst is longer than
dstsize bytes when strlcat() is called, the string pointed to by dst is
not changed. The function returns min{dstsize,
strlen(dst)}+strlen(src). Buffer overflow can be checked as follows:
if (strlcat(dst, src, dstsize) >= dstsize)
return -1;
strspn()
The strspn() function returns the length of the initial segment of
string s1 that consists entirely of characters from string s2.
RETURN VALUES
The strcpy(), strncat() and strncpy() functions return dst.
For strlcat(), strlcpy() and strspn() functions, see the Description
section.
CONTEXT
These functions can be called from user, interrupt, or kernel context.
SEE ALSOstrlen(9F), strcmp(9F), bcopy(9F), ddi_copyin(9F)NOTES
If copying takes place between objects that overlap, the behavior of
strcpy(), strlcat(), strlcpy(), strncat(), strncpy(), strspn() is unde‐
fined.
SunOS 5.10 16 Jan 2006 strcpy(9F)