標準IOとlinuxシステムIOのバッファ問題
システムIOはデフォルトではバッファリングされませんが、バッファリングされていないのではなく、すぐにファイルに書き込まれます.
標準IO、デフォルトはフルバッファ、
このバッファがいっぱい書いてあります(システムMALLOCの、私たちが作ったbufferではありません)
fllush関数を使用
fcloseを使用してファイルを閉じる
setbufを使用して、setvbufはfile*のプロパティを変更します.
この3つのケースは書類に書くことができます
標準IO、デフォルトはフルバッファ、
このバッファがいっぱい書いてあります(システムMALLOCの、私たちが作ったbufferではありません)
fllush関数を使用
fcloseを使用してファイルを閉じる
setbufを使用して、setvbufはfile*のプロパティを変更します.
この3つのケースは書類に書くことができます
/* setbuf example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
char buffer[BUFSIZ];
FILE *pFile1, *pFile2;
pFile1=fopen ("myfile.txt","w");
pFile2=fopen ("myfile2.txt","a");
setbuf ( pFile1 , buffer );
fputs ("This is sent to a buffered stream",pFile1);
fputs ("This is sent to a buffered stream2",pFile1);
// fflush (pFile1);
setbuf ( pFile2 , NULL );
fputs ("This is sent to an unbuffered stream",pFile2);
// fclose (pFile1);
//fclose (pFile2);
system("pause");
return 0;
}