English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Biblioteca Padrão C - <stdio.h>
Função da biblioteca C int setvbuf(FILE *stream, char *buffer, int mode, size_t size) Define como o fluxo stream deve ser bufferizado.
Aqui está a declaração da função setvbuf().
int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
Modo | Descrição |
---|---|
_IOFBF | Buffer completo: Para a saída, os dados são escritos uma vez que o buffer estiver cheio. Para a entrada, o buffer é preenchido até encontrar a próxima solicitação de entrada e o buffer estiver vazio. |
_IOLBF | Buffer de linha: Para a saída, os dados são escritos quando encontrar um caractere de nova linha ou o buffer estiver cheio, dependendo do caso. Para a entrada, o buffer é preenchido até encontrar a próxima nova linha quando solicitado. |
_IONBF | Sem buffer: Não usar buffer. Cada I/O operações são escritas imediatamente. Os parâmetros buffer e size são ignorados. |
Se bem-sucedido, a função retorna 0, caso contrário, retorna um valor não nulo.
O exemplo a seguir demonstra o uso da função setvbuf().
#include <stdio.h> int main() { char buff[1024]; memset( buff, '\0', sizeof( buff )); fprintf(stdout, "Ativar buffer completo\n"); setvbuf(stdout, buff, _IOFBF, 1024; fprintf(stdout, "Aqui está oldtoolbag.com\n"); fprintf(stdout, "Essa saída será salva em buff\n"); fflush( stdout ); fprintf(stdout, "Isso ocorrerá durante a programação\n"); fprintf(stdout, "O último sono durará cinco segundos\n"); sleep(5; return(0); }
Vamos compilar e executar o programa acima, o que produzirá os seguintes resultados. Aqui, o programa salva a saída de buffer. buffAté a primeira chamada fflush() Até, em seguida, começar a bufferizar a saída, e finalmente dormir 5 Segundos. Ele enviará o resto da saída para STDOUT antes do final do programa.
Ativar buffer completo Aqui está oldtoolbag.com Essa saída será salva em buff Isso ocorrerá durante a programação Dormir por cinco segundos no final