Skip to content

Latest commit

 

History

History
64 lines (47 loc) · 1.49 KB

File metadata and controls

64 lines (47 loc) · 1.49 KB

setbuf

  • cstdio[meta header]
  • std[meta namespace]
  • function[meta id-type]
namespace std {
  void setbuf(FILE* stream, char* buf);
}
  • FILE[link file.md]

概要

ファイルストリームが使用する入出力バッファを設定する。

bufがヌルポインタでない場合はsetvbuf()(stream, buf, _IOFBF, BUFSIZ)と、ヌルポインタの場合はsetvbuf()(stream, nullptr, _IONBF, 0)と等価である。

戻り値

なし。

設定に失敗したかどうかを知る必要がある場合は、setvbuf()を使用する。

備考

  • この関数は、ストリームを開いた後、入出力操作を行う前に呼び出さなければならない
  • bufとして渡す配列は、BUFSIZ個以上の要素をもち、ストリームを閉じるまで生存していなければならない

#include <cstdio>

int main()
{
  char buffer[BUFSIZ];

  std::FILE* fp = std::fopen("test.txt", "w");

  // 独自に用意したバッファを使用する
  std::setbuf(fp, buffer);
  std::fputs("Hello", fp);

  std::fclose(fp);
  std::printf("done\n");
}
  • std::setbuf[color ff0000]
  • std::fopen[link fopen.md]
  • std::fclose[link fclose.md]
  • std::fputs[link fputs.md]
  • std::printf[link printf.md]
  • std::FILE[link file.md]
  • BUFSIZ[link bufsiz.md]

出力

done

関連項目