GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


       strcat, strncat - concatenate two strings


       #include <string.h>

       char *strcat(char *dest, const char *src);

       char *strncat(char *dest, const char *src, size_t n);


       The  strcat()  function  appends  the  src  string  to the dest string,
       overwriting the terminating null byte ('') at the end  of  dest,  and
       then  adds  a  terminating null byte.  The strings may not overlap, and
       the dest string must have enough space for the result.  If dest is  not
       large  enough, program behavior is unpredictable; buffer overruns are a
       favorite avenue for attacking secure programs.

       The strncat() function is similar, except that

       *  it will use at most n bytes from src; and

       *  src does not need to be null-terminated if it  contains  n  or  more

       As  with  strcat(),  the  resulting  string  in  dest  is  always null-

       If src contains n or more bytes, strncat() writes n+1 bytes to dest  (n
       from  src plus the terminating null byte).  Therefore, the size of dest
       must be at least strlen(dest)+n+1.

       A simple implementation of strncat() might be:

           strncat(char *dest, const char *src, size_t n)
               size_t dest_len = strlen(dest);
               size_t i;

               for (i = 0 ; i < n && src[i] != '' ; i++)
                   dest[dest_len + i] = src[i];
               dest[dest_len + i] = '';

               return dest;


       The strcat() and strncat() functions return a pointer to the  resulting
       string dest.


   Multithreading (see pthreads(7))
       The strcat() and strncat() functions are thread-safe.


       SVr4, 4.3BSD, C89, C99.


       Some  systems  (the  BSDs,  Solaris,  and others) provide the following

           size_t strlcat(char *dest, const char *src, size_t size);

       This function appends the null-terminated  string  src  to  the  string
       dest,  copying  at  most  size-strlen(dest)-1 from src, and adds a null
       terminator to the result, unless size is less than strlen(dest).   This
       function  fixes  the buffer overrun problem of strcat(), but the caller
       must still handle the possibility of data loss if size  is  too  small.
       The  function  returns  the  length  of  the  string strlcat() tried to
       create; if the return value is greater than or equal to size, data loss
       occurred.   If  data  loss  matters,  the  caller must either check the
       arguments  before  the  call,  or  test  the  function  return   value.
       strlcat() is not present in glibc and is not standardized by POSIX, but
       is available on Linux via the libbsd library.


       bcopy(3),  memccpy(3),  memcpy(3),  strcpy(3),  string(3),  strncpy(3),
       wcscat(3), wcsncat(3)


       This  page  is  part of release 3.65 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at

  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to
Page load time: 0.114 seconds. Last modified: November 04 2018 12:49:43.