Latest web development tutorials

fonctions de la bibliothèque C - setvbuf ()

C bibliothèque standard - <stdio.h> C bibliothèque standard - <stdio.h>

description

fonctions de la bibliothèque Cint setvbuf (FILE * flux, char * buffer, int mode, la taille size_t) pour définir la manière dont le tampon de flux d'écoulement.

déclaration

Voici () fonction instruction setvbuf.

int setvbuf(FILE *stream, char *buffer, int mode, size_t size)

Paramètres

  • flux - Ceci est un pointeur sur FILE pointeur vers un objet, l'identificateur d'objet FILE un flux ouvert.
  • tampon - qui est affecté à la mémoire tampon de l' utilisateur.Si la valeur NULL, la fonction attribue automatiquement une taille de mémoire tampon spécifiée.
  • Mode - Ceci spécifie le mode de tampon de fichier:
模式描述
_IOFBF全缓冲:对于输出,数据在缓冲填满时被一次性写入。对于输入,缓冲会在请求输入且缓冲为空时被填充。
_IOLBF行缓冲:对于输出,数据在遇到换行符或者在缓冲填满时被写入,具体视情况而定。对于输入,缓冲会在请求输入且缓冲为空时被填充,直到遇到下一个换行符。
_IONBF无缓冲:不使用缓冲。每个 I/O 操作都被即时写入。buffer 和 size 参数被忽略。
  • taille - c'est la taille de la mémoire tampon en octets.

Valeur de retour

En cas de succès, la fonction renvoie 0, sinon elle retourne une valeur non nulle.

Exemples

L'exemple suivant illustre la fonction setvbuf () est utilisée.

#include <stdio.h>

int main()
{

   char buff[1024];

   memset( buff, '\0', sizeof( buff ));

   fprintf(stdout, "启用全缓冲\n");
   setvbuf(stdout, buff, _IOFBF, 1024);

   fprintf(stdout, "这里是 w3cschool.cc\n");
   fprintf(stdout, "该输出将保存到 buff\n");
   fflush( stdout );

   fprintf(stdout, "这将在编程时出现\n");
   fprintf(stdout, "最后休眠五秒钟\n");

   sleep(5);

   return(0);
}

Nous allons compiler et exécuter le programme ci-dessus, qui va produire les résultats suivants. Ici, un programme pour enregistrer le tampon de sortie àchamois, jusqu'à ce que le premier appel à fflush ()avant de commencer une sortie tamponnée des 5 dernières secondes de sommeil. Ce sera avant la fin du programme, pour envoyer la sortie restante à STDOUT.

启用全缓冲
这里是 w3cschool.cc
该输出将保存到 buff
这将在编程时出现
最后休眠五秒钟

C bibliothèque standard - <stdio.h> C bibliothèque standard - <stdio.h>