wcsncat, wcsncat_s
|
Défini dans l'en-tête
<wchar.h>
|
||
| (1) | ||
|
wchar_t
*
wcsncat
(
wchar_t
*
dest,
const
wchar_t
*
src,
size_t
count
)
;
|
(depuis C95)
(jusqu'à C99) |
|
|
wchar_t
*
wcsncat
(
wchar_t
*
restrict
dest,
const wchar_t * restrict src, size_t count ) ; |
(depuis C99) | |
|
errno_t wcsncat_s
(
wchar_t
*
restrict
dest, rsize_t destsz,
const wchar_t * restrict src, rsize_t count ) ; |
(2) | (depuis C11) |
count
caractères larges de la chaîne large pointée par
src
, en s'arrêtant si le terminateur nul est copié, à la fin de la chaîne de caractères pointée par
dest
. Le caractère large
src
[
0
]
remplace le terminateur nul à la fin de
dest
. Le terminateur nul est toujours ajouté à la fin (donc le nombre maximum de caractères larges que la fonction peut écrire est
count
+
1
).
str
et
dest
ainsi que le caractère large nul de fin.
destsz
) et que les erreurs suivantes sont détectées à l'exécution et appellent la fonction
gestionnaire de contraintes
actuellement installée :
-
-
srcoudestest un pointeur nul -
destszoucountest zéro ou supérieur à RSIZE_MAX / sizeof ( wchar_t ) -
il n'y a pas de caractère large nul dans les premiers
destszcaractères larges dedest -
une troncation se produirait :
countou la longueur desrc, selon la plus petite, dépasse l'espace disponible entre le terminateur nul dedestetdestsz. - un chevauchement se produirait entre les chaînes source et destination
-
-
Comme pour toutes les fonctions à vérification de limites,
wcsncat_sn'est garantie d'être disponible que si __STDC_LIB_EXT1__ est défini par l'implémentation et si l'utilisateur définit __STDC_WANT_LIB_EXT1__ à la constante entière 1 avant d'inclure <wchar.h> .
Table des matières |
Paramètres
| dest | - | pointeur vers la chaîne large terminée par un caractère nul à laquelle ajouter |
| src | - | pointeur vers la chaîne large terminée par un caractère nul à copier |
| count | - | nombre maximum de caractères larges à copier |
| destsz | - | taille du tampon de destination |
Valeur de retour
dest
dest
est un pointeur nul ou
destsz
est zéro ou supérieur à
RSIZE_MAX
/
sizeof
(
wchar_t
)
).
Notes
Bien que la troncation pour s'adapter au tampon de destination soit un risque de sécurité et donc une violation des contraintes d'exécution pour
wcsncat_s
, il est possible d'obtenir le comportement de troncation en spécifiant
count
égal à la taille du tableau de destination moins un : cela copiera les premiers
count
caractères larges et ajoutera le terminateur nul comme toujours :
wcsncat_s
(
dst,
sizeof
dst
/
sizeof
*
dst, src,
(
sizeof
dst
/
sizeof
*
dst
)
-
wcsnlen_s
(
dst,
sizeof
dst
/
sizeof
*
dst
)
-
1
)
;
Exemple
Sortie possible :
Земля, прощай. В добрый
Références
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.29.4.3.2 La fonction wcsncat (p : 315)
-
- K.3.9.2.2.2 La fonction wcsncat_s (p : 466-467)
- Norme C11 (ISO/CEI 9899:2011):
-
- 7.29.4.3.2 La fonction wcsncat (p: 432-433)
-
- K.3.9.2.2.2 La fonction wcsncat_s (p: 643-644)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.24.4.3.2 La fonction wcsncat (p : 378-379)
Voir aussi
|
(C95)
(C11)
|
ajoute une copie d'une chaîne large à une autre
(fonction) |
|
(C11)
|
concatène un certain nombre de caractères de deux chaînes
(fonction) |
|
(C95)
(C11)
|
copie une chaîne large vers une autre
(fonction) |
|
Documentation C++
pour
wcsncat
|
|