Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       strcpy, strncpy - kopiert eine Zeichenkette

ÜBERSICHT

       #include <string.h>

       char *strcpy(char *Ziel, const char *Quelle);

       char *strncpy(char *Ziel, const char *Quelle, size_t n);

BESCHREIBUNG

       Die  Funktion  strcpy()  kopiert  die  Zeichenkette, auf die der Zeiger
       Quelle zeigt, inklusive des abschließenden  Null-Bytes  ('\0')  an  die
       Stelle,  auf  die  Ziel  zeigt.  Die  Zeichenketten  dürfen  sich nicht
       überlappen und die Zielzeichenkette Ziel muss groß genug sein,  um  die
       Kopie aufzunehmen.

       Die  Funktion  strncpy()  arbeitet ähnlich, allerdings werden maximal n
       Byte von Quelle kopiert. Warnung:  Ist  kein  Null-Byte  innerhalb  der
       ersten n Byte von Quelle, wird die Zeichenkette in Ziel nicht durch ein
       Null-Byte abgeschlossen.

       Ist die Länge von Quelle kleiner als n, füllt strncpy()  den  Rest  von
       Ziel mit Null-Bytes auf.

       Eine einfache Implementierung von strncpy() ist:

           char *
           strncpy(char *ziel, const char *quelle, size_t n)
           {
               size_t i;

               for (i = 0; i < n && quelle[i] != '\0'; i++)
                   ziel[i] = quelle[i];
               for ( ; i < n; i++)
                   ziel[i] = '\0';

               return ziel;
           }

RÜCKGABEWERT

       Die  Funktionen  strcpy()  und  strncpy()  geben  einen  Zeiger auf die
       Zielzeichenkette Ziel zurück.

KONFORM ZU

       SVr4, 4.3BSD, C89, C99.

ANMERKUNGEN

       Einige   Programmierer   halten   strncpy()   für    ineffizient    und
       fehleranfällig.  Wenn  der  Programmierer weiß, dass die Größe von Ziel
       größer ist als die Länge von Quelle (indem er Code verwendet,  der  das
       überprüft!), kann strcpy() benutzt werden.

       Wenn  kein  abschließendes Null-Byte innerhalb der ersten n Zeichen von
       Quelle enthalten ist,  erstellt  strncpy()  eine  nicht  abgeschlossene
       Zeichenkette  in  Ziel.  Programmierer verhindern diesen Fehler oftmals
       dadurch, dass sie den Abschluss folgendermaßen erzwingen:

           strncpy(buf, str, n);
           if (n > 0)
               buf[n - 1]= '\0';

FEHLER

       Wenn die Zielzeichenkette beim Aufruf von  strcpy()  nicht  groß  genug
       ist,    kann    alles    Denkbare    passieren.    Der   Überlauf   von
       Zeichenkettenpuffern   mit   fester    Länge    ist    eine    beliebte
       Cracker-Technik,  um  vollständige  Kontrolle  über  einen  Rechner  zu
       erlangen. Immer, wenn ein Programm Daten aus einem Puffer liest oder in
       ihn  schreibt,  muss das Programm zuerst überprüfen, ob es genug freien
       Platz gibt. Das kann überflüssig sein, wenn Sie beweisen  können,  dass
       ein Überlauf unmöglich ist, aber seien Sie vorsichtig: Programme können
       im Lauf der Zeit geändert werden. Und  plötzlich  wird  das  Unmögliche
       möglich.

SIEHE AUCH

       bcopy(3),  memccpy(3),  memcpy(3),  memmove(3),  stpcpy(3),  strdup(3),
       string(3), wcscpy(3), wcsncpy(3)

KOLOPHON

       Diese  Seite  ist  Teil  der   Veröffentlichung   3.32   des   Projekts
       Linux-man-pages.  Eine Beschreibung des Projekts und Informationen, wie
       Fehler    gemeldet     werden     können,     finden     sich     unter
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche Übersetzung dieser Handbuchseite wurde von Markus Schmitt
       <fw@vieta.math.uni-sb.de>  und  Tobias   Quathamer   <toddy@debian.org>
       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>.