diff options
Diffstat (limited to 'man-pages-posix-2003/man3p/strcpy.3p')
-rw-r--r-- | man-pages-posix-2003/man3p/strcpy.3p | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man3p/strcpy.3p b/man-pages-posix-2003/man3p/strcpy.3p new file mode 100644 index 0000000..48af7a4 --- /dev/null +++ b/man-pages-posix-2003/man3p/strcpy.3p @@ -0,0 +1,124 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "STRCPY" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" strcpy +.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 +strcpy \- copy a string +.SH SYNOPSIS +.LP +\fB#include <string.h> +.br +.sp +char *strcpy(char *restrict\fP \fIs1\fP\fB, const char *restrict\fP +\fIs2\fP\fB); +.br +\fP +.SH DESCRIPTION +.LP +The \fIstrcpy\fP() function shall copy the string pointed to by \fIs2\fP +(including the terminating null byte) into the array +pointed to by \fIs1\fP. If copying takes place between objects that +overlap, the behavior is undefined. +.SH RETURN VALUE +.LP +The \fIstrcpy\fP() function shall return \fIs1\fP; no return value +is reserved to indicate an error. +.SH ERRORS +.LP +No errors are defined. +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.SS Initializing a String +.LP +The following example copies the string \fB"----------"\fP into the +\fIpermstring\fP variable. +.sp +.RS +.nf + +\fB#include <string.h> +\&... +static char permstring[11]; +\&... +strcpy(permstring, "----------"); +\&... +\fP +.fi +.RE +.SS Storing a Key and Data +.LP +The following example allocates space for a key using \fImalloc\fP() +then uses +\fIstrcpy\fP() to place the key there. Then it allocates space for +data using \fImalloc\fP(), and uses \fIstrcpy\fP() to place data there. +(The user-defined function +\fIdbfree\fP() frees memory previously allocated to an array of type +\fBstruct element *\fP.) +.sp +.RS +.nf + +\fB#include <string.h> +#include <stdlib.h> +#include <stdio.h> +\&... +/* Structure used to read data and store it. */ +struct element { + char *key; + char *data; +}; +.sp + +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); +.sp + +if ((curtbl->data = malloc(strlen(data) + 1)) == NULL) { + perror("malloc"); free(curtbl->key); dbfree(tbl, count); return NULL; +} +strcpy(curtbl->data, data); +\&... +\fP +.fi +.RE +.SH APPLICATION USAGE +.LP +Character movement is performed differently in different implementations. +Thus, overlapping moves may yield surprises. +.LP +This issue 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 +.LP +None. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIstrncpy\fP(), the Base Definitions volume of IEEE\ Std\ 1003.1-2001, +\fI<string.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 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 . |