|
Packit |
7cfc04 |
'\" et
|
|
Packit |
7cfc04 |
.TH STRCPY "3P" 2013 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
|
Packit |
7cfc04 |
.SH PROLOG
|
|
Packit |
7cfc04 |
This manual page is part of the POSIX Programmer's Manual.
|
|
Packit |
7cfc04 |
The Linux implementation of this interface may differ (consult
|
|
Packit |
7cfc04 |
the corresponding Linux manual page for details of Linux behavior),
|
|
Packit |
7cfc04 |
or the interface may not be implemented on Linux.
|
|
Packit |
7cfc04 |
|
|
Packit |
7cfc04 |
.SH NAME
|
|
Packit |
7cfc04 |
stpcpy, strcpy
|
|
Packit |
7cfc04 |
\(em copy a string and return a pointer to the end of the result
|
|
Packit |
7cfc04 |
.SH SYNOPSIS
|
|
Packit |
7cfc04 |
.LP
|
|
Packit |
7cfc04 |
.nf
|
|
Packit |
7cfc04 |
#include <string.h>
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
char *stpcpy(char *restrict \fIs1\fP, const char *restrict \fIs2\fP);
|
|
Packit |
7cfc04 |
char *strcpy(char *restrict \fIs1\fP, const char *restrict \fIs2\fP);
|
|
Packit |
7cfc04 |
.fi
|
|
Packit |
7cfc04 |
.SH DESCRIPTION
|
|
Packit |
7cfc04 |
For
|
|
Packit |
7cfc04 |
\fIstrcpy\fR():
|
|
Packit |
7cfc04 |
The functionality described on this reference page is aligned with the
|
|
Packit |
7cfc04 |
ISO\ C standard. Any conflict between the requirements described here and the
|
|
Packit |
7cfc04 |
ISO\ C standard is unintentional. This volume of POSIX.1\(hy2008 defers to the ISO\ C standard.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
\fIstpcpy\fR()
|
|
Packit |
7cfc04 |
and
|
|
Packit |
7cfc04 |
\fIstrcpy\fR()
|
|
Packit |
7cfc04 |
functions shall copy the string pointed to by
|
|
Packit |
7cfc04 |
.IR s2
|
|
Packit |
7cfc04 |
(including the terminating NUL character) into the array pointed to by
|
|
Packit |
7cfc04 |
.IR s1 .
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
If copying takes place between objects that overlap, the behavior is
|
|
Packit |
7cfc04 |
undefined.
|
|
Packit |
7cfc04 |
.SH "RETURN VALUE"
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
\fIstpcpy\fR()
|
|
Packit |
7cfc04 |
function shall return a pointer to the terminating NUL character copied
|
|
Packit |
7cfc04 |
into the
|
|
Packit |
7cfc04 |
.IR s1
|
|
Packit |
7cfc04 |
buffer.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The
|
|
Packit |
7cfc04 |
\fIstrcpy\fR()
|
|
Packit |
7cfc04 |
function shall return
|
|
Packit |
7cfc04 |
.IR s1 .
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
No return values are reserved to indicate an error.
|
|
Packit |
7cfc04 |
.SH ERRORS
|
|
Packit |
7cfc04 |
No errors are defined.
|
|
Packit |
7cfc04 |
.LP
|
|
Packit |
7cfc04 |
.IR "The following sections are informative."
|
|
Packit |
7cfc04 |
.SH EXAMPLES
|
|
Packit |
7cfc04 |
.SS "Construction of a Multi-Part Message in a Single Buffer"
|
|
Packit |
7cfc04 |
.sp
|
|
Packit |
7cfc04 |
.RS 4
|
|
Packit |
7cfc04 |
.nf
|
|
Packit |
7cfc04 |
\fB
|
|
Packit |
7cfc04 |
#include <string.h>
|
|
Packit |
7cfc04 |
#include <stdio.h>
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
int
|
|
Packit |
7cfc04 |
main (void)
|
|
Packit |
7cfc04 |
{
|
|
Packit |
7cfc04 |
char buffer [10];
|
|
Packit |
7cfc04 |
char *name = buffer;
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
name = stpcpy (stpcpy (stpcpy (name, "ice"),"-"), "cream");
|
|
Packit |
7cfc04 |
puts (buffer);
|
|
Packit |
7cfc04 |
return 0;
|
|
Packit |
7cfc04 |
}
|
|
Packit |
7cfc04 |
.fi \fR
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
.RE
|
|
Packit |
7cfc04 |
.SS "Initializing a String"
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The following example copies the string
|
|
Packit |
7cfc04 |
.BR \(dq----------\(dq
|
|
Packit |
7cfc04 |
into the
|
|
Packit |
7cfc04 |
.IR permstring
|
|
Packit |
7cfc04 |
variable.
|
|
Packit |
7cfc04 |
.sp
|
|
Packit |
7cfc04 |
.RS 4
|
|
Packit |
7cfc04 |
.nf
|
|
Packit |
7cfc04 |
\fB
|
|
Packit |
7cfc04 |
#include <string.h>
|
|
Packit |
7cfc04 |
\&...
|
|
Packit |
7cfc04 |
static char permstring[11];
|
|
Packit |
7cfc04 |
\&...
|
|
Packit |
7cfc04 |
strcpy(permstring, "----------");
|
|
Packit |
7cfc04 |
\&...
|
|
Packit |
7cfc04 |
.fi \fR
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
.RE
|
|
Packit |
7cfc04 |
.SS "Storing a Key and Data"
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The following example allocates space for a key using
|
|
Packit |
7cfc04 |
\fImalloc\fR()
|
|
Packit |
7cfc04 |
then uses
|
|
Packit |
7cfc04 |
\fIstrcpy\fR()
|
|
Packit |
7cfc04 |
to place the key there. Then it allocates space for data using
|
|
Packit |
7cfc04 |
\fImalloc\fR(),
|
|
Packit |
7cfc04 |
and uses
|
|
Packit |
7cfc04 |
\fIstrcpy\fR()
|
|
Packit |
7cfc04 |
to place data there. (The user-defined function
|
|
Packit |
7cfc04 |
\fIdbfree\fR()
|
|
Packit |
7cfc04 |
frees memory previously allocated to an array of type
|
|
Packit |
7cfc04 |
.BR "struct element *" .)
|
|
Packit |
7cfc04 |
.sp
|
|
Packit |
7cfc04 |
.RS 4
|
|
Packit |
7cfc04 |
.nf
|
|
Packit |
7cfc04 |
\fB
|
|
Packit |
7cfc04 |
#include <string.h>
|
|
Packit |
7cfc04 |
#include <stdlib.h>
|
|
Packit |
7cfc04 |
#include <stdio.h>
|
|
Packit |
7cfc04 |
\&...
|
|
Packit |
7cfc04 |
/* Structure used to read data and store it. */
|
|
Packit |
7cfc04 |
struct element {
|
|
Packit |
7cfc04 |
char *key;
|
|
Packit |
7cfc04 |
char *data;
|
|
Packit |
7cfc04 |
};
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
struct element *tbl, *curtbl;
|
|
Packit |
7cfc04 |
char *key, *data;
|
|
Packit |
7cfc04 |
int count;
|
|
Packit |
7cfc04 |
\&...
|
|
Packit |
7cfc04 |
void dbfree(struct element *, int);
|
|
Packit |
7cfc04 |
\&...
|
|
Packit |
7cfc04 |
if ((curtbl->key = malloc(strlen(key) + 1)) == NULL) {
|
|
Packit |
7cfc04 |
perror("malloc"); dbfree(tbl, count); return NULL;
|
|
Packit |
7cfc04 |
}
|
|
Packit |
7cfc04 |
strcpy(curtbl->key, key);
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
if ((curtbl->data = malloc(strlen(data) + 1)) == NULL) {
|
|
Packit |
7cfc04 |
perror("malloc"); free(curtbl->key); dbfree(tbl, count); return NULL;
|
|
Packit |
7cfc04 |
}
|
|
Packit |
7cfc04 |
strcpy(curtbl->data, data);
|
|
Packit |
7cfc04 |
\&...
|
|
Packit |
7cfc04 |
.fi \fR
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
.RE
|
|
Packit |
7cfc04 |
.SH "APPLICATION USAGE"
|
|
Packit |
7cfc04 |
Character movement is performed differently in different
|
|
Packit |
7cfc04 |
implementations. Thus, overlapping moves may yield surprises.
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
This version is aligned with the ISO\ C standard; this does not affect
|
|
Packit |
7cfc04 |
compatibility with XPG3 applications. Reliable error detection by this
|
|
Packit |
7cfc04 |
function was never guaranteed.
|
|
Packit |
7cfc04 |
.SH RATIONALE
|
|
Packit |
7cfc04 |
None.
|
|
Packit |
7cfc04 |
.SH "FUTURE DIRECTIONS"
|
|
Packit |
7cfc04 |
None.
|
|
Packit |
7cfc04 |
.SH "SEE ALSO"
|
|
Packit |
7cfc04 |
.IR "\fIstrncpy\fR\^(\|)",
|
|
Packit |
7cfc04 |
.IR "\fIwcscpy\fR\^(\|)"
|
|
Packit |
7cfc04 |
.P
|
|
Packit |
7cfc04 |
The Base Definitions volume of POSIX.1\(hy2008,
|
|
Packit |
7cfc04 |
.IR "\fB<string.h>\fP"
|
|
Packit |
7cfc04 |
.SH COPYRIGHT
|
|
Packit |
7cfc04 |
Portions of this text are reprinted and reproduced in electronic form
|
|
Packit |
7cfc04 |
from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
|
|
Packit |
7cfc04 |
-- Portable Operating System Interface (POSIX), The Open Group Base
|
|
Packit |
7cfc04 |
Specifications Issue 7, Copyright (C) 2013 by the Institute of
|
|
Packit |
7cfc04 |
Electrical and Electronics Engineers, Inc and The Open Group.
|
|
Packit |
7cfc04 |
(This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) In the
|
|
Packit |
7cfc04 |
event of any discrepancy between this version and the original IEEE and
|
|
Packit |
7cfc04 |
The Open Group Standard, the original IEEE and The Open Group Standard
|
|
Packit |
7cfc04 |
is the referee document. The original Standard can be obtained online at
|
|
Packit |
7cfc04 |
http://www.unix.org/online.html .
|
|
Packit |
7cfc04 |
|
|
Packit |
7cfc04 |
Any typographical or formatting errors that appear
|
|
Packit |
7cfc04 |
in this page are most likely
|
|
Packit |
7cfc04 |
to have been introduced during the conversion of the source files to
|
|
Packit |
7cfc04 |
man page format. To report such errors, see
|
|
Packit |
7cfc04 |
https://www.kernel.org/doc/man-pages/reporting_bugs.html .
|