POSIX 파일 설명자에서 C fstream을 생성하려면 고려해야 합니다. 간단해 보이지만 구현은 복잡할 수 있습니다.
표준 C 라이브러리는 파일 설명자에서 fstream을 생성하는 직접적인 방법을 제공하지 않습니다. 그러나 libstdc와 같은 일부 구현에서는 파일 설명자 또는 FILE* 포인터를 입력으로 받아들이는 비표준 확장 생성자를 제공할 수 있습니다.
Libstdc는 __gnu_cxx:: std::basic_streambuf에서 상속되고 스트림을 연결하는 생성자가 있는 stdio_filebuf 클래스 템플릿 POSIX 파일 설명자를 사용하는 버퍼:
stdio_filebuf (int __fd, std::ios_base::openmode __mode, size_t __size=static_cast< size_t >(BUFSIZ))
이 생성자를 사용하는 예:
#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는 비표준 FILE* 포인터를 받아들이는 ifstream 생성자:
explicit basic_ifstream(_Filet *_File);
이 생성자를 다음과 함께 사용할 수 있습니다. _fdopen은 파일 설명자에서 ifstream을 생성합니다:
#include <cstdio> #include <iostream> int main() { ... int posix_handle = ...; FILE* c_stream = _fdopen(posix_handle, "r"); ifstream ifs(c_stream); ...
위 내용은 POSIX 파일 설명자에서 C fstream을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!