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

BEZEICHNUNG

       strcpy, strncpy - kopiert eine Zeichenkette

"UBERSICHT

       #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 abschlieBenden  Null-Bytes  ('\0')  an  die
       Stelle,  auf  die  Ziel  zeigt.  Die  Zeichenketten  durfen  sich nicht
       uberlappen und die Zielzeichenkette Ziel muss groB genug sein,  um  die
       Kopie aufzunehmen.

       Die  Funktion  strncpy()  arbeitet ahnlich, 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 Lange von Quelle kleiner als n, fullt 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"UCKGABEWERT

       Die  Funktionen  strcpy()  und  strncpy()  geben  einen  Zeiger auf die
       Zielzeichenkette Ziel zuruck.

KONFORM ZU

       SVr4, 4.3BSD, C89, C99.

ANMERKUNGEN

       Einige   Programmierer   halten   strncpy()   fur    ineffizient    und
       fehleranfallig.  Wenn  der  Programmierer weiB, dass die GroBe von Ziel
       groBer ist als die Lange von Quelle (indem er Code verwendet,  der  das
       uberpruft!), kann strcpy() benutzt werden.

       Wenn  kein  abschlieBendes 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 folgendermaBen erzwingen:

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

FEHLER

       Wenn die Zielzeichenkette beim Aufruf von  strcpy()  nicht  groB  genug
       ist,    kann    alles    Denkbare    passieren.    Der   Uberlauf   von
       Zeichenkettenpuffern   mit   fester    Lange    ist    eine    beliebte
       Cracker-Technik,  um  vollstandige  Kontrolle  uber  einen  Rechner  zu
       erlangen. Immer, wenn ein Programm Daten aus einem Puffer liest oder in
       ihn  schreibt,  muss das Programm zuerst uberprufen, ob es genug freien
       Platz gibt. Das kann uberflussig sein, wenn Sie beweisen  konnen,  dass
       ein Uberlauf unmoglich ist, aber seien Sie vorsichtig: Programme konnen
       im Lauf der Zeit geandert werden. Und  plotzlich  wird  das  Unmogliche
       moglich.

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   Veroffentlichung   3.32   des   Projekts
       Linux-man-pages.  Eine Beschreibung des Projekts und Informationen, wie
       Fehler    gemeldet     werden     konnen,     finden     sich     unter
       http://www.kernel.org/doc/man-pages/.

"UBERSETZUNG

       Die  deutsche Ubersetzung dieser Handbuchseite wurde von Markus Schmitt
       <fw@vieta.math.uni-sb.de>  und  Tobias   Quathamer   <toddy@debian.org>
       erstellt.

       Diese  Ubersetzung  ist  Freie Dokumentation; lesen Sie die GNU General
       Public  License  Version  3  oder  neuer   bezuglich   der   Copyright-
       Bedingungen. Es wird KEINE HAFTUNG ubernommen.

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