stdin : fichier logique d'entrée standard
stdout : fichier logique de sortie standard
stderr : fichier logique d'erreur standard
dans: <stdio.h>
Description:
Ces trois identificateurs sont définis dans <stdio.h> et correspondent à des fichiers logiques ouverts, avant que la première instruction de main() soit exécutée.
- stdin est ouvert en lecture et correspond à l'entée standard (descripteur de numéro 0) qui peut être redirigée, comme par exemple en tapant la commande:
prog < donnees stdin est utilisé dans les opérations de lecture, même si la variable n'intervient pas; par exemple les deux instructions suivantes sont équivalentes:
- stdout est ouvert en écriture et correspond à la sortie standard (descripteur de numéro 1) qui peut être redirigée, comme par exemple:
prog > resultats
stdout est utilisé dans les opérations d'affichage, même si la variable n'intervient pas; par exemple les deux instructions suivantes sont équivalentes:
- printf( "%d", &ii);
- fprintf( stdout, "%d", &ii);
L'affichage sur stdout, consécutif à l'exécution de printf(), n'est pas nécessairement transmis immédiatement à l'écran.
Il y a transmission dans l'un des cas suivant:
- le tampon mémoire est plein
- le caractère '\n' est dans le flot.
- stderr est ouvert en écriture et correspond à la sortie erreur (descripteur de numéro 2) qui peut être redirigée, comme par exemple:
cc prog.c 2> fic
Voir aussi:
Exemple:
#include
int main(void) {
int ii, nn;
printf( "Tapez un entier : ");
scanf( "%d", &ii);
fprintf( stdout, "Tapez un autre entier non nul : ");
fscanf( stdin, "%d", &nn);
if(nn==0) fprintf( stderr, "division impossible\n");
else printf("quotient entier de %d par %d : %d\n", ii, nn, ii/nn);
return 0;
}