gets, gets_s
|
Défini dans l'en-tête
<stdio.h>
|
||
|
char
*
gets
(
char
*
str
)
;
|
(1) | (supprimé en C11) |
|
char
*
gets_s
(
char
*
str, rsize_t n
)
;
|
(2) | (depuis C11) |
- n est nul ;
- n est supérieur à RSIZE_MAX ;
- str est un pointeur nul ;
- endline ou eof non rencontrés après le stockage de n - 1 caractères dans le tampon.
gets_s
commence par terminer la lecture et ignorer les caractères de
stdin
jusqu'au caractère de nouvelle ligne, condition de fin de fichier, ou erreur de lecture avant d'appeler le gestionnaire de contraintes.
gets_s
est uniquement garantie d'être disponible 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
<stdio.h>
.
Table des matières |
Paramètres
| str | - | un tableau de caractères vers lequel les caractères de stdin seront écrits |
| n | - | nombre maximum de caractères pouvant être écrits dans le tableau pointé par str |
Valeur de retour
str en cas de succès, un pointeur nul en cas d'échec.
Si l'échec a été causé par une condition de fin de fichier, positionne également l'indicateur eof (voir feof() ) sur stdin . Si l'échec a été causé par une autre erreur, positionne l'indicateur error (voir ferror() ) sur stdin .
Notes
La fonction
gets()
n'effectue pas de vérification des limites, par conséquent cette fonction est extrêmement vulnérable aux attaques par dépassement de tampon. Elle ne peut pas être utilisée en toute sécurité (à moins que le programme ne s'exécute dans un environnement qui restreint ce qui peut apparaître sur
stdin
). Pour cette raison, la fonction a été dépréciée dans le troisième corrigendum de la norme C99 et supprimée complètement dans la norme C11.
fgets()
et
gets_s()
sont les remplacements recommandés.
AVERTISSEMENT : N'utilisez jamais
gets()
.
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- K.3.5.4.1 La fonction gets_s (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- K.3.5.4.1 La fonction gets_s (p: TBD)
- Norme C11 (ISO/IEC 9899:2011) :
-
- K.3.5.4.1 La fonction gets_s (p: 602-603)
- Norme C99 (ISO/IEC 9899:1999) :
-
- 7.19.7.7 La fonction gets (p: 298)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.9.7.7 La fonction gets
Voir aussi
|
(C11)
(C11)
(C11)
|
lit une entrée formatée depuis
stdin
, un flux de fichier ou un tampon
(fonction) |
|
obtient une chaîne de caractères depuis un flux de fichier
(fonction) |
|
|
écrit une chaîne de caractères vers un flux de fichier
(fonction) |
|
|
(dynamic memory TR)
|
lit depuis un flux dans un tampon redimensionné automatiquement jusqu'au délimiteur/fin de ligne
(fonction) |
|
Documentation C++
pour
gets
|
|