Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      setbuf

      From cppreference.com
      <c‎ |io
       
       
      File input/output
      Types and objects
      Functions
      File access
      Unformatted input/output
      (C95)(C95)
      (C95)
      (C95)(C95)
      (C95)
      (C95)

      Formatted input
       
      Defined in header<stdio.h>
      void setbuf(FILE          *stream,char          *buffer);
      (until C99)
      void setbuf(FILE*restrict stream,char*restrict buffer);
      (since C99)
      #define BUFSIZ     /*unspecified*/

      Sets the internal buffer to use for stream operations. It should be at leastBUFSIZ characters long.

      Ifbuffer is not null, equivalent tosetvbuf(stream, buffer,_IOFBF,BUFSIZ).

      Ifbuffer is null, equivalent tosetvbuf(stream,NULL,_IONBF,0), which turns off buffering.

      Contents

      [edit]Parameters

      stream - the file stream to set the buffer to
      buffer - pointer to a buffer for the stream to use. If a null pointer is supplied, the buffering is turned off

      [edit]Return value

      None.

      [edit]Notes

      IfBUFSIZ is not the appropriate buffer size,setvbuf can be used to change it.

      setvbuf should also be used to detect errors, sincesetbuf does not indicate success or failure.

      This function may only be used afterstream has been associated with an open file, but before any other operation (other than a failed call tosetbuf/setvbuf).

      A common error is setting the buffer of stdin or stdout to an array whose lifetime ends before the program terminates:

      int main(void){char buf[BUFSIZ];    setbuf(stdin, buf);}// lifetime of buf ends, undefined behavior

      [edit]Example

      setbuf may be used to disable buffering on streams that require immediate output.

      Run this code
      #include <stdio.h>#include <threads.h> int main(void){    setbuf(stdout,NULL);// unbuffered stdoutputchar('a');// 'a' appears immediately if stdout is unbufferedthrd_sleep(&(struct timespec){.tv_sec=1},NULL);// sleep 1 secputchar('b');}

      Output:

      ab

      [edit]References

      • C17 standard (ISO/IEC 9899:2018):
      • 7.21.5.5 The setbuf function (p: 225)
      • C11 standard (ISO/IEC 9899:2011):
      • 7.21.5.5 The setbuf function (p: 307-308)
      • C99 standard (ISO/IEC 9899:1999):
      • 7.19.5.5 The setbuf function (p: 273)
      • C89/C90 standard (ISO/IEC 9899:1990):
      • 4.9.5.5 The setbuf function

      [edit]See also

      sets the buffer and its size for a file stream
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/io/setbuf&oldid=135090"

      [8]ページ先頭

      ©2009-2025 Movatter.jp