كيف يمكنني الحصول على FileHandle من أجل iostream C ++؟

أحتاج إلى Windows FileHandle المقترن بـ iostream C ++ باستخدام mingw على Windows. هذا هو على الأرجح نفس "واصف ملف UNIX" المقترنة بـ iostream C ++ على Windows. لا أحد يعرف كيفية العثور عليه؟ شكر.

0
أنا أطلب ذلك حتى أتمكن من مسح ملف القرص المرتبطة iostream. stackoverflow.com/questions/8107436/&hellip،
وأضاف المؤلف vy32, مصدر
ماذا تطلبها؟ اعتمادًا على الهدف الفعلي ، قد تكون هناك إجابة محمولة/قياسية
وأضاف المؤلف sehe, مصدر
لا توجد طريقة قياسية للقيام بذلك ، لسبب بسيط وهو أنه قد لا يتم تنفيذ iostream من حيث مقابض الملفات على الإطلاق. إذا قمت بالبحث في تفاصيل التنفيذ الخاصة بمكتبتك ، فستجد الدفق المعتمد على المقبض ومع بعض الصب القبيح ستتمكن من العثور على المرجع إلى ذلك الكائن في iostream وسحب المقبض.
وأضاف المؤلف antlersoft, مصدر

1 إجابة

Did you see my answer, here:
How do I flush a stdlib output file on win32?

std::basic_filebuf *file_buf = dynamic_cast *>(f.rdbuf());
if (file_buf != 0) {
    struct to_get_protected_member : public std::basic_filebuf {
        int fd() { return _M_file.fd(); }
    };
    printf("your fd is %d\n", static_cast(file_buf)->fd());
}
2
وأضاف
فعلت. الآن تحصل على نقطتين!
وأضاف المؤلف vy32, مصدر