有谁知道如何将 int 文件描述符缓冲区设置为无缓冲区并立即刷新?我试过使用 setvbuf
但它需要一个 FILE*
而不是 int fd
。
凯文
最佳答案
与 int
关联的文件是操作系统句柄。 setvbuf()
使用 C 运行时库 FILE
管理缓冲区。
为了防止缓冲,您必须使用适当的操作系统特定函数,当文件为 opened 时也许可以这样做.例如,在 Linux 上
int fd = open ("/dev/whatever", O_APPEND | O_WRONLY | O_DIRECT);
要刷新已写入的数据,请使用 fsync()
:
#include <unistd.h>
...
fsync(fd);
关于android - 在 C++ 中打开创建的文件描述符的 Setvbuf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11529500/