Setvbuf用于在C ++中打开创建的文件描述符?

Kev*_*ker 4 c c++ android

有谁知道如何将int文件描述符缓冲区设置为无缓冲区并立即刷新?我试过使用,setvbufFILE*没有int fd

凯文

wal*_*lyk 5

与关联的文件int是操作系统句柄。 setvbuf()使用C运行时库管理缓冲区FILE

为了防止缓冲,您必须使用适当的操作系统特定功能,当打开文件时可以完成此操作。例如,在Linux上

int fd = open ("/dev/whatever", O_APPEND | O_WRONLY | O_DIRECT);
Run Code Online (Sandbox Code Playgroud)

要刷新已写入的数据,请使用fsync()

#include <unistd.h>

...
fsync(fd);
Run Code Online (Sandbox Code Playgroud)