Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membuat C fstream daripada Deskriptor Fail POSIX?
Mencipta aliran C daripada deskriptor fail POSIX memerlukan pertimbangan. Walaupun ia kelihatan mudah, pelaksanaannya boleh menjadi rumit.
Pustaka C standard tidak menyediakan kaedah langsung untuk mencipta fstream daripada deskriptor fail. Walau bagaimanapun, sesetengah pelaksanaan, seperti libstdc , mungkin menawarkan pembina sambungan bukan standard yang menerima deskriptor fail atau penuding FILE* sebagai input.
Libstdc menyediakan __gnu_cxx:: templat kelas stdio_filebuf, yang mewarisi daripada std::basic_streambuf dan mempunyai pembina yang mengaitkan penimbal strim dengan deskriptor fail POSIX:
stdio_filebuf (int __fd, std::ios_base::openmode __mode, size_t __size=static_cast< size_t >(BUFSIZ))
Contoh menggunakan pembina ini:
#include <ext/stdio_filebuf.h> // Libstdc++ extension #include <iostream> int main() { ... int posix_handle = ...; __gnu_cxx::stdio_filebuf<char> filebuf(posix_handle, std::ios::in); istream is(&filebuf); ...
Microsoft Visual C juga menawarkan pembina ifstream bukan standard yang menerima FILE* penunjuk:
explicit basic_ifstream(_Filet *_File);
Anda boleh menggunakan pembina ini bersama-sama dengan _fdopen untuk mencipta ifstream daripada deskriptor fail:
#include <cstdio> #include <iostream> int main() { ... int posix_handle = ...; FILE* c_stream = _fdopen(posix_handle, "r"); ifstream ifs(c_stream); ...
Atas ialah kandungan terperinci Bagaimana untuk Membuat C fstream daripada Deskriptor Fail POSIX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!