int ファイル記述子バッファーをバッファーなしに設定し、すぐにフラッシュする方法を知っている人はいますか? 使用しようとしましたが、 notsetvbuf
かかります。FILE*
int fd
ケビン
に関連付けられているファイルint
は、オペレーティングシステムのハンドルです。 setvbuf()
Cランタイムライブラリでバッファを管理しますFILE
。
バッファリングを防ぐには、適切なオペレーティングシステム固有の機能を使用する必要があります。これは、ファイルを開いたときに実行できる可能性があります。たとえば、Linuxの場合
int fd = open ("/dev/whatever", O_APPEND | O_WRONLY | O_DIRECT);
すでに書き込まれたデータをフラッシュするには、次を使用しますfsync()
。
#include <unistd.h>
...
fsync(fd);