Re: [PATCH v5 2/5] stpecpy.3, stpecpyx.3, ustpcpy.3, ustr2stp.3, zustr2stp.3, zustr2ustp.3: Add new links to string_copy(7)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Formatted strpcy(3):

strcpy(3)                  Library Functions Manual                  strcpy(3)

NAME
       strcpy - copy or catenate a string

LIBRARY
       Standard C library (libc, -lc)

SYNOPSIS
       #include <string.h>

       char *stpcpy(char *restrict dst, const char *restrict src);
       char *strcpy(char *restrict dst, const char *restrict src);
       char *strcat(char *restrict dst, const char *restrict src);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       stpcpy():
           Since glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Before glibc 2.10:
               _GNU_SOURCE

DESCRIPTION
       stpcpy()
       strcpy()
              These functions copy the string pointed to by src, into a string
              at  the buffer pointed to by dst.  The programmer is responsible
              for allocating a buffer large enough, that is, strlen(src) +  1.
              They only differ in the return value.

       strcat()
              This function catenates the string pointed to by src, at the end
              of  the string pointed to by dst.  The programmer is responsible
              for allocating a buffer large enough,  that  is,  strlen(dst)  +
              strlen(src) + 1.

       An implementation of these functions might be:

           char *
           stpcpy(char *restrict dst, const char *restrict src)
           {
               char  *end;

               end = mempcpy(dst, src, strlen(src));
               *end = '\0';

               return end;
           }

           char *
           strcpy(char *restrict dst, const char *restrict src)
           {
               stpcpy(dst, src);
               return dst;
           }

           char *
           strcat(char *restrict dst, const char *restrict src)
           {
               stpcpy(dst + strlen(dst), src);
               return dst;
           }

RETURN VALUE
       stpcpy()
              This  function returns a pointer to the terminating null byte at
              the end of the copied string.

       strcpy()
       strcat()
              These functions return dest.

ATTRIBUTES
       For an explanation of the terms  used  in  this  section,  see  attrib‐
       utes(7).
       ┌────────────────────────────────────────────┬───────────────┬─────────┐
       │Interface                                   │ Attribute     │ Value   │
       ├────────────────────────────────────────────┼───────────────┼─────────┤
       │stpcpy(), strcpy(), strcat()                │ Thread safety │ MT‐Safe │
       └────────────────────────────────────────────┴───────────────┴─────────┘

STANDARDS
       stpcpy()
              POSIX.1‐2008.

       strcpy()
       strcat()
              POSIX.1‐2001, POSIX.1‐2008, C89, C99, SVr4, 4.3BSD.

CAVEATS
       The strings src and dst may not overlap.

       If  the  destination  buffer is not large enough, the behavior is unde‐
       fined.  See _FORTIFY_SOURCE in feature_test_macros(7).

BUGS
       strcat()
              This function can be  very  inefficient.   Read  about  Shlemiel
              the      painter     ⟨https://www.joelonsoftware.com/2001/12/11/
              back-to-basics/⟩.

EXAMPLES
       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       int
       main(void)
       {
           char    *p;
           char    buf1[BUFSIZ];
           char    buf2[BUFSIZ];
           size_t  len;

           p = buf1;
           p = stpcpy(p, "Hello ");
           p = stpcpy(p, "world");
           p = stpcpy(p, "!");
           len = p - buf1;

           printf("[len = %zu]: ", len);
           puts(buf1);  // "Hello world!"

           strcpy(buf2, "Hello ");
           strcat(buf2, "world");
           strcat(buf2, "!");
           len = strlen(buf2);

           printf("[len = %zu]: ", len);
           puts(buf2);  // "Hello world!"

           exit(EXIT_SUCCESS);
       }

SEE ALSO
       strdup(3), string(3), wcscpy(3), string_copy(7)

Linux man‐pages (unreleased)        (date)                           strcpy(3)

--
<http://www.alejandro-colomar.es/>

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux