Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2793 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [c] Comment vide le cache de sortie avec fflush(sdout) ou autre ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] Comment vide le cache de sortie avec fflush(sdout) ou autre ?

n°749782
weed
Posté le 03-06-2004 à 00:09:11  profilanswer
 

je recois buf et lorsque je fais un printf avec un \n, ca marche, printf affiche  
 

Code :
  1. recv(new_fd, buf, MAXDATASIZE, 0)) == -1);
  2. printf("\n buf   => %s",buf);


 
mais je souhaiterais pouvoir utiliser ma fonction affichage qui me formattrait l'affichage de buf. J'ai utilisé fflush mais rien y fais, j'ai meme utilisé NULL comme argument pour soit disant vidé tout les flux.
 

Code :
  1. recv(new_fd, buf, MAXDATASIZE, 0)) == -1);
  2. if (fflush(NULL) != 0)
  3. {
  4. perror ("fflush " );
  5. }
  6. affichage(buf);
  7. if (fflush(NULL) != 0)
  8. {
  9. perror ("fflush " );
  10. }
  11. voici ma fonction affichage si ca peux aider ..
  12. [cpp]void affichage (char *entete)
  13. {
  14. int lg = strlen(entete);
  15. int i, espace=1, a_la_ligne=1;
  16. for (i=0;i<lg;i++)
  17. {
  18.  printf("%d%c ",i,entete[i]);
  19.  //tous les 16 bits, on separe d'un espace pour que ce soit plus lisible
  20.  if ( (i+1) == espace*16)
  21.  {
  22.   printf("   " );
  23.   espace ++;
  24.  }
  25.  //tous les mots de 32 bits ont va a la ligne
  26.  if ( (i+1) == a_la_ligne*32)
  27.  {
  28.   printf("\n" );
  29.   a_la_ligne ++;
  30.  }
  31. }
  32. printf("\n vide le buffer\n" );
  33. }


 
Que faire pour que la fonction  affichage (char *entete) puisse afficher buf ?


Message édité par weed le 03-06-2004 à 00:16:11
mood
Publicité
Posté le 03-06-2004 à 00:09:11  profilanswer
 

n°749805
Taz
bisounours-codeur
Posté le 03-06-2004 à 00:26:20  profilanswer
 

fflush(NULL) est une extension
 
fflush(stdout) fonctionne très bien.
 
mais là en fait je vois pas trop ou est ton problème honnêtement, surtout que le moindre '\n' sur stdout dans la majorité des cas vide le buffer (terminaux bufferisé par ligne)
 
 
rajoute un oid affichage (const char *entete)


Message édité par Taz le 03-06-2004 à 00:34:09
n°749812
vivelec
Posté le 03-06-2004 à 00:31:26  profilanswer
 

C'est compliqué, ton truc pour un jeudi soir.
retiens une seule chose qui pourras te dépanner : les *printf* sont bufferisés à la ligne.

n°749818
Taz
bisounours-codeur
Posté le 03-06-2004 à 00:33:56  profilanswer
 

vivelec a écrit :


retiens une seule chose qui pourras te dépanner : les *printf* sont bufferisés à la ligne.

les printf sont pas bufferisés : c'est les FILE*. et il existe 3 mode de bufferisation

n°749824
vivelec
Posté le 03-06-2004 à 00:35:53  profilanswer
 

Taz a écrit :

les printf sont pas bufferisés : c'est les FILE*. et il existe 3 mode de bufferisation


Tu as tout à fait raison.
Pour une fois que tu ne gnaques pas, c'est à souligner.

n°749865
weed
Posté le 03-06-2004 à 00:52:20  profilanswer
 

lol en fait ca fonctionne
bizzare j'avais pourtant fais toutes les possibilités nimaginable avec fflush  
 merci a vous tous ....


Message édité par weed le 03-06-2004 à 00:53:22

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [c] Comment vide le cache de sortie avec fflush(sdout) ou autre ?

 

Sujets relatifs
champ numerique et non videjTextPane vide
[Struts] mes formulaires gardent toutes les valeurs de champs en cacheTomcat proxy cache ==> probleme
[QT/C++] pb de load de grosses images en cache ( qCache & qPixmap )[swing] verifier si un textField est vide, pourquoi sa marche pas ?
Marquage d'une catégorie d'objet : interface vide ou flag booleén ?Comment détecter une valeure vide ?
PHP : image se load en petit et cache le texte ...[IIS6] comment desactiver la fonction de cache ???
Plus de sujets relatifs à : [c] Comment vide le cache de sortie avec fflush(sdout) ou autre ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR