Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       strcat, strncat - hängt zwei Zeichenketten aneinander

ÜBERSICHT

       #include <string.h>

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

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

BESCHREIBUNG

       Die Funktion strcat() hängt die Zeichenkette src an die Zeichenkette dest an, überschreibt
       dabei das Null-Byte ('\0') am Ende von dest und fügt ein  neues  abschließendes  Null-Byte
       an.  Die  Zeichenketten  dürfen  nicht  überlappen  und  dest  muss genügend Platz für das
       Ergebnis haben. Falls dest nicht groß genug ist, ist das Programmverhalten unvorhersehbar;
       Pufferüberläufe sind ein beliebter Angriffspfad für sichere Programme.

       Die Funktion strncat() ist ähnlich, aber sie

       *  bearbeitet höchstens n Bytes von src; und

       *  src  muss  nicht  mit  einem  Null-Byte  abgeschlossen sein, falls es n oder mehr Bytes
          enthält.

       Wie auch bei strcat() endet die resultierende Zeichenkette mit einem Null-Byte.

       Wenn src n oder mehr Bytes enthält, schreibt strncat() n+1 Bytes  nach  dest  (n  von  src
       sowie   das   abschließende   Null-Byte).   Daher  muss  die  Größe  von  dest  wenigstens
       strlen(dest)+n+1 Zeichen sein.

       Eine einfache Implementierung von strncat() könnte so aussehen:

           char*
           strncat(char *Ziel, const char *Quelle, size_t n)
           {
               size_t Ziel_len = strlen(Ziel);
               size_t i;

               for (i = 0 ; i < n && Quelle[i] != '\0' ; i++)
                   Ziel[Ziel_len + i] = Quelle[i];
               Ziel[Ziel_len + i] = '\0';

               return Ziel;
           }

RÜCKGABEWERT

       Die  Funktionen  strcat()  und  strncat()  geben  einen  Zeiger  auf   die   resultierende
       Zeichenkette dest zurück.

KONFORM ZU

       SVr4, 4.3BSD, C89, C99.

ANMERKUNGEN

       Einige Systeme (die BSDs, Solaris und andere) stellen die folgende Funktion bereit:

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

       Diese  Funktion  fügt  die  null-terminierte Zeichenkette src an die Zeichenkette dest an,
       kopiert dabei höchstens size-strlen(dest)-1 Zeichen von src  und  fügt  dem  Ergebnis  ein
       Null-Byte  an,  wenn  nicht  size  kleiner als strlen(dest) ist. Diese Funktion behebt das
       Pufferüberlauf-Problem  von  strcat(),  aber  der  Aufrufende  muss  sich  noch  mit   der
       Möglichkeit  eines  Datenverlusts  befassen, wenn size zu klein ist. Die Funktion gibt die
       Länge der Zeichenkette zurück, die strlcat() zu erzeugen versuchte; wenn der  Rückgabewert
       größer  als  oder gleich size ist, kam es zu Datenverlust. Wenn Datenverlust von Bedeutung
       ist, muss der Aufrufende entweder vor dem Aufruf die Argumente oder nach  dem  Aufruf  den
       Rückgabewert  prüfen.  strlcat()  ist  nicht  in  Glibc  vorhanden  und  nicht  von  POSIX
       standardisiert, sondern ist unter Linux über die Bibliothek libbsd verfügbar.

SIEHE AUCH

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

KOLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Markus Schmitt <fw@math.uni-sb.de>
       und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version  3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE   HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.