আমি কিভাবে একটি C ++ iostream জন্য FileHandle পেতে পারি?

আমার উইন্ডোজ ফাইলহ্যান্ডেল উইন্ডোজ এ মিংউ ব্যবহার করে সি ++ আইস্ট্রিমের সাথে যুক্ত। এটি সম্ভবত উইন্ডোজ এ C ++ iostream এর সাথে যুক্ত UNIX ফাইল বর্ণনাকারীর মতোই। যে কেউ এটি খুঁজে পেতে কিভাবে জানেন? ধন্যবাদ।

0
আমি এটা প্রয়োজন যাতে আমি iostream সঙ্গে যুক্ত ডিস্ক ফাইল ফ্লাশ করতে পারেন। stackoverflow.com/questions/8107436/…
যোগ লেখক vy32, উৎস
আপনি এটি জন্য কি প্রয়োজন? প্রকৃত লক্ষ্য উপর নির্ভর করে একটি পোর্টেবল/মান উত্তর হতে পারে
যোগ লেখক sehe, উৎস
এটি করার জন্য কোনও আদর্শ উপায় নেই, সহজ কারণের জন্য যে কোনও আইস্ট্রিম ফাইল পরিচালনার ক্ষেত্রে বাস্তবায়িত হতে পারে না। আপনি যদি আপনার লাইব্রেরির বাস্তবায়ন বিশদটি খনন করেন তবে আপনি হ্যান্ডেল ভিত্তিক স্ট্রিমিমাল পাবেন এবং কিছু কুৎসিত কাস্টিংয়ের সাথে আপনি আপনার আইস্ট্রিম বস্তুর প্রসঙ্গটি খুঁজে পেতে এবং হ্যান্ডেলটি টেনে আনতে সক্ষম হবেন।
যোগ লেখক 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, উৎস