문제:
POSIX 파일 설명자에서 직접 fstream 객체를 구성하는 것은 다음과 같습니다. C에 도전하다 .
해결책:
Libstd
libstdc의 경우 이를 수행하는 표준 방법이 없습니다. 그러나 libstdc는 파일 설명자 입력을 사용하는 fstream에 대한 비표준 생성자를 제공합니다.
예:
#include <ext/stdio_filebuf.h> using namespace std; int main() { int posix_handle = open("file.txt", O_RDONLY); // Open a file with POSIX handle __gnu_cxx::stdio_filebuf<char> filebuf(posix_handle, ios::in); // Create stdio_filebuf from POSIX handle ifstream ifs(&filebuf); // Create ifstream from stdio_filebuf // Read from the file }
Microsoft Visual C
Microsoft Visual C는 FILE 포인터를 허용하는 ifstream에 대한 비표준 생성자도 제공합니다. _fdopen을 호출하여 POSIX 파일 설명자에서 FILE을 얻을 수 있습니다.
예:
#include <cstdio> #include <fstream> using namespace std; FILE *_file = fopen("file.txt", "r"); // Open a file with C file handle ifstream ifs(_fdopen(_fileno(_file), "r")); // Create ifstream from FILE* // Read from the file
참고:
이것은 비 -표준 생성자는 모든 C 구현에서 사용 가능하지 않을 수 있습니다. 특정 구현에 대한 문서를 확인하는 것이 좋습니다.
위 내용은 POSIX 파일 설명자에서 C fstream을 어떻게 구성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!