man-pages/man3/stpncpy.3

72 lines
1.9 KiB
Groff

.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
.\" References consulted:
.\" GNU glibc-2 source code and manual
.\"
.\" Corrected, aeb, 990824
.TH STPNCPY 3 2011-09-28 "GNU" "Linux Programmer's Manual"
.SH NAME
stpncpy \- copy a fixed-size string, returning a pointer to its end
.SH SYNOPSIS
.nf
.B #include <string.h>
.sp
.BI "char *stpncpy(char *" dest ", const char *" src ", size_t " n );
.fi
.sp
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
.sp
.BR stpncpy ():
.PD 0
.ad l
.RS 4
.TP 4
Since glibc 2.10:
_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
.TP
Before glibc 2.10:
_GNU_SOURCE
.RE
.ad
.PD
.SH DESCRIPTION
The
.BR stpncpy ()
function copies at most \fIn\fP characters from the string
pointed to by \fIsrc\fP, including the terminating null byte (\(aq\\0\(aq),
to the array pointed to by \fIdest\fP.
Exactly \fIn\fP characters are written at
\fIdest\fP.
If the length \fIstrlen(src)\fP is smaller than \fIn\fP, the
remaining characters in the array pointed to by \fIdest\fP are filled
with null bytes (\(aq\\0\(aq),
If the length \fIstrlen(src)\fP is greater or equal to
\fIn\fP, the string pointed to by \fIdest\fP will
not be null-terminated.
.PP
The strings may not overlap.
.PP
The programmer must ensure that there is room for at least \fIn\fP characters
at \fIdest\fP.
.SH RETURN VALUE
.BR stpncpy ()
returns a pointer to the terminating null byte
in \fIdest\fP, or, if \fIdest\fP is not null-terminated,
\fIdest + n\fP.
.SH CONFORMING TO
This function was added to POSIX.1-2008.
Before that, it was a GNU extension.
.SH SEE ALSO
.BR strncpy (3),
.BR wcpncpy (3)