wcsncat, wcsncat_s
|
Definiert in Header
<wchar.h>
|
||
| (1) | ||
|
wchar_t
*
wcsncat
(
wchar_t
*
dest,
const
wchar_t
*
src,
size_t
count
)
;
|
(seit C95)
(bis C99) |
|
|
wchar_t
*
wcsncat
(
wchar_t
*
restrict
dest,
const wchar_t * restrict src, size_t count ) ; |
(seit C99) | |
|
errno_t wcsncat_s
(
wchar_t
*
restrict
dest, rsize_t destsz,
const wchar_t * restrict src, rsize_t count ) ; |
(2) | (seit C11) |
count
Breitzeichen von der Breitzeichenfolge, auf die
src
zeigt, an das Ende der Zeichenfolge, auf die
dest
zeigt, hinzu und stoppt, wenn der Nullterminator kopiert wird. Das Breitzeichen
src
[
0
]
ersetzt den Nullterminator am Ende von
dest
. Der Nullterminator wird immer am Ende angehängt (daher beträgt die maximale Anzahl von Breitzeichen, die die Funktion schreiben kann,
count
+
1
).
str
als auch
dest
und das abschließende Null-Breitzeichen ist.
destsz
) überschreiben kann und dass die folgenden Fehler zur Laufzeit erkannt werden und die aktuell installierte
constraint handler
-Funktion aufrufen:
-
-
srcoderdestist ein null pointer -
destszodercountist null oder größer als RSIZE_MAX / sizeof ( wchar_t ) -
Es gibt kein null wide character in den ersten
destszBreitzeichen vondest -
Trunkierung würde auftreten:
countoder die Länge vonsrc, je nachdem was kleiner ist, überschreitet den verfügbaren Platz zwischen dem null terminator vondestunddestsz. - Überlappung würde zwischen den Quell- und Zielzeichenfolgen auftreten
-
-
Wie bei allen bounds-checked functions ist
wcsncat_snur garantiert verfügbar, wenn __STDC_LIB_EXT1__ durch die Implementierung definiert ist und wenn der Benutzer __STDC_WANT_LIB_EXT1__ auf den Integer-Konstantenwert 1 setzt, bevor <wchar.h> eingebunden wird.
Inhaltsverzeichnis |
Parameter
| dest | - | Zeiger auf die nullterminierte Breitzeichen-Zeichenkette, an die angehängt werden soll |
| src | - | Zeiger auf die nullterminierte Breitzeichen-Zeichenkette, von der kopiert werden soll |
| count | - | maximale Anzahl an zu kopierenden Breitzeichen |
| destsz | - | Größe des Zielpuffers |
Rückgabewert
dest
zurück
dest
kein Nullzeiger ist oder
destsz
nicht Null oder größer als
RSIZE_MAX
/
sizeof
(
wchar_t
)
ist).
Hinweise
Obwohl das Abschneiden zur Anpassung an den Zielpuffer ein Sicherheitsrisiko darstellt und daher einen Verstoß gegen die Laufzeitbeschränkungen für
wcsncat_s
darstellt, ist es möglich, das abschneidende Verhalten zu erreichen, indem
count
gleich der Größe des Zielarrays minus eins angegeben wird: Es werden die ersten
count
Breitzeichen kopiert und wie immer der Nullterminator angehängt:
wcsncat_s
(
dst,
sizeof
dst
/
sizeof
*
dst, src,
(
sizeof
dst
/
sizeof
*
dst
)
-
wcsnlen_s
(
dst,
sizeof
dst
/
sizeof
*
dst
)
-
1
)
;
Beispiel
Mögliche Ausgabe:
Земля, прощай. В добрый
Referenzen
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.29.4.3.2 Die wcsncat-Funktion (S: 315)
-
- K.3.9.2.2.2 Die wcsncat_s-Funktion (S: 466-467)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.29.4.3.2 Die wcsncat-Funktion (S. 432-433)
-
- K.3.9.2.2.2 Die wcsncat_s-Funktion (S. 643-644)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.24.4.3.2 Die wcsncat-Funktion (S: 378-379)
Siehe auch
|
(C95)
(C11)
|
hängt eine Kopie eines breiten Strings an einen anderen an
(Funktion) |
|
(C11)
|
verkettet eine bestimmte Anzahl von Zeichen zweier Strings
(Funktion) |
|
(C95)
(C11)
|
kopiert einen breiten String in einen anderen
(Funktion) |
|
C++-Dokumentation
für
wcsncat
|
|