私の目的は、カーネルへのファイル書き込み操作を減らすことです。そのため、POSIX でのキャッシュ/バッファリング メカニズムを探しています。標準 C ライブラリ setbuf がそれを行うと思いますが、POSIX に同様の呼び出しはありますか?
たとえば、バッファ サイズを 1K バイトに設定したいのですが、プログラムがバッファ サイズを超える前にディスクへの実際の書き込み操作を開始しないようにしたいと考えています。
fdpipe= open(PIPE_NAME,O_RDONLY);
......
fd = open(filename,O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE,S_IREAD|S_IWRITE);
....
while((len = read(fdpipe,buffer,sizeof(buffer))) > 0) {
....
ret = write(fd,buffer,length = strlen(buffer));
}