Latest web development tutorials

funciones de la biblioteca C - setvbuf ()

C biblioteca estándar - <stdio.h> C biblioteca estándar - <stdio.h>

descripción

funciones de la biblioteca Cint setvbuf (* flujo FILE, char * buffer, int modo, el tamaño size_t) para definir la forma en la memoria intermedia de corriente de flujo.

declaración

Aquí es) a función más setvbuf (.

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

parámetros

  • corriente - Este es un puntero a FILE puntero a un objeto, el archivo de identificador de objeto de un flujo abierto.
  • tampón - que está asignado a la memoria intermedia de usuario.Si se establece en NULL, la función asignará automáticamente un tamaño de búfer especificado.
  • Modo - Especifica el modo de búfer de archivo:
模式描述
_IOFBF全缓冲:对于输出,数据在缓冲填满时被一次性写入。对于输入,缓冲会在请求输入且缓冲为空时被填充。
_IOLBF行缓冲:对于输出,数据在遇到换行符或者在缓冲填满时被写入,具体视情况而定。对于输入,缓冲会在请求输入且缓冲为空时被填充,直到遇到下一个换行符。
_IONBF无缓冲:不使用缓冲。每个 I/O 操作都被即时写入。buffer 和 size 参数被忽略。
  • tamaño - este es el tamaño del buffer en bytes.

Valor de retorno

Si tiene éxito, la función devuelve 0, en otro caso devuelve un valor distinto de cero.

Ejemplos

El siguiente ejemplo muestra se utiliza la función setvbuf ().

#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);
}

Vamos a compilar y ejecutar el programa anterior, que producirá los siguientes resultados. Aquí, un programa para guardar el búfer de salida depiel de ante, hasta que la primera llamada a fflush ()antes de comenzar un buffer de salida de los últimos 5 segundos del sueño. Será antes de que finalice el programa, para enviar el resto de la salida a la salida estándar.

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

C biblioteca estándar - <stdio.h> C biblioteca estándar - <stdio.h>