stdin, stdout, stderr
|
Défini dans l'en-tête
<stdio.h>
|
||
|
#define stdin /* implementation-defined */
|
(1) | |
|
#define stdout /* implementation-defined */
|
(2) | |
|
#define stderr /* implementation-defined */
|
(3) | |
Trois flux de texte sont prédéfinis. Ces flux sont implicitement ouverts et non orientés au démarrage du programme.
Ce qui constitue un dispositif interactif est défini par l'implémentation.
Ces macros sont développées en expressions de type FILE * .
Table des matières |
Notes
Bien que non imposée par POSIX, la convention UNIX est que
stdin
et
stdout
sont tamponnés par ligne s'ils sont associés à un terminal, et que
stderr
est non tamponné.
Ces macros peuvent être développées en lvalues modifiables. Si l'une de ces FILE * lvalue est modifiée, les opérations ultérieures sur le flux correspondant entraînent un comportement non spécifié ou indéfini.
Exemple
Cet exemple montre une fonction équivalente à printf .
#include <stdarg.h> #include <stdio.h> int my_printf(const char* restrict fmt, ...) { va_list vl; va_start(vl, fmt); int ret = vfprintf(stdout, fmt, vl); va_end(vl); return ret; } int main(void) { my_printf("Rounding:\t%f %.0f %.32f\n", 1.5, 1.5, 1.3); my_printf("Padding:\t%05.2f %.2f %5.2f\n", 1.5, 1.5, 1.5); my_printf("Scientific:\t%E %e\n", 1.5, 1.5); my_printf("Hexadecimal:\t%a %A\n", 1.5, 1.5); }
Sortie possible :
Rounding: 1.500000 2 1.30000000000000004440892098500626 Padding: 01.50 1.50 1.50 Scientific: 1.500000E+00 1.500000e+00 Hexadecimal: 0x1.8p+0 0X1.8P+0
Références
- Norme C23 (ISO/IEC 9899:2024) :
-
- 7.21.1 Introduction (p: TBD)
-
- 7.21.2 Flux (p: TBD)
-
- 7.21.2 Fichiers (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.21.1 Introduction (p : 217-218)
-
- 7.21.2 Flux (p : 217-219)
-
- 7.21.2 Fichiers (p : 219-221)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.21.1 Introduction (p: 296-298)
-
- 7.21.2 Flux (p: 298-299)
-
- 7.21.2 Fichiers (p: 300-302)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.19.1 Introduction (p : 262-264)
-
- 7.19.2 Flux (p : 264-265)
-
- 7.19.2 Fichiers (p : 266-268)
- Norme C89/C90 (ISO/CEI 9899:1990) :
-
- 7.9.1 Introduction
-
- 7.9.2 Flux
-
- 7.9.3 Fichiers
Voir aussi
|
type d'objet, capable de contenir toutes les informations nécessaires pour contrôler un flux d'E/S C
(typedef) |
|
|
documentation C++
pour
stdin
,
stdout
,
stderr
|
|