Programmation Avancée en C


multitest.c

00001 #include <stdio.h>
00002 #include <unistd.h>
00003 
00004 int main()
00005 {
00006         char bloc[TAILLE_BLOC];
00007 #ifdef NOTMP
00008         setbuf(stdin, NULL);
00009         setbuf(stdout, NULL);
00010 #elif  TMP_X
00011         #ifndef TAILLE_TMP
00012         #error "Il faut définir TAILLE_TMP"
00013         #endif
00014         char tamponin[TAILLE_TMP];
00015         char tamponout[TAILLE_TMP];
00016         setvbuf(stdin, tamponin, _IOFBF, TAILLE_TMP);
00017         setvbuf(stdout, tamponout, _IOFBF, TAILLE_TMP);
00018 #else
00019 #error "Il faut définir la politique de tampon pour stdin!"
00020 #endif
00021 #ifdef FREAD
00022         while(fread(bloc, TAILLE_BLOC, 1, stdin) == 1) {
00023                 fwrite(bloc, TAILLE_BLOC, 1, stdout);
00024         }
00025 #else
00026         while(read(STDIN_FILENO, bloc, TAILLE_BLOC) > 0) {
00027                 write(STDOUT_FILENO, bloc, TAILLE_BLOC);
00028         }
00029 #endif
00030         return 0;
00031 }