如何获取C ++ iostream的FileHandle?

时间:2011-11-12 21:11:21

标签: c++ filehandle std

我需要在Windows上使用mingw与C ++ iostream关联的Windows FileHandle。这可能与Windows上与C ++ iostream关联的UNIX文件描述符相同。有谁知道如何找到它?感谢。

1 个答案:

答案 0 :(得分:2)

你有没有看到我的答案: How do I flush a stdlib output file on win32?

std::basic_filebuf<char> *file_buf = dynamic_cast<std::basic_filebuf<char> *>(f.rdbuf());
if (file_buf != 0) {
    struct to_get_protected_member : public std::basic_filebuf<char> {
        int fd() { return _M_file.fd(); }
    };
    printf("your fd is %d\n", static_cast<to_get_protected_member *>(file_buf)->fd());
}