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

标签 android c++ c

有谁知道如何将 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/

相关文章:

java - 从android中的静态方法调用非静态方法

android - "empty"布局中的 GestureDetector NullPointerException

c++ - 如何检查当前是否用鼠标单击了小部件?

c++ - 可能因异常而泄漏?

c++ - C++ 中的模板类

C:关于指针使用的困惑

c - 如何检查 Double 中的浮点精度

显示应用程序名称的 Android Studio 导航栏丢失了吗?

android - 如何使 listview 和 GridLayout 可滚动

C - 将数据读入结构数组,memcpy?