您的位置: 首页 > 技术问答 > 通过在C++中打开创建的文件描述符的Setvbuf? 通过在C++中打开创建的文件描述符的Setvbuf? 分类: 技术问答 • 2022-05-01 11:17:23 问题描述: 有谁知道如何一个int文件描述符缓存设置为无缓冲,并立即刷新?我试图用setvbuf,但它需要一个FILE*不int fd。通过在C++中打开创建的文件描述符的Setvbuf? 凯文 答 与int相关联的文件是一个操作系统句柄。 setvbuf()管理缓冲区与C运行时库FILE。 为了防止缓存,你必须使用正确的操作系统特定的功能,这或许可以在该文件是opened来完成。例如,在Linux上 int fd = open ("/dev/whatever", O_APPEND | O_WRONLY | O_DIRECT); 要刷新已写入的数据,使用fsync(): #include <unistd.h> ... fsync(fd); +0 或'fdatasync()'如果你想跳过元数据更新。 – Duck 2012-07-17 19:53:20
或'fdatasync()'如果你想跳过元数据更新。 – Duck 2012-07-17 19:53:20