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