Provided by:
manpages-de-dev_0.10-1_all 
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>.