> 백엔드 개발 > C++ > POSIX 파일 설명자에서 C fstream을 어떻게 구성할 수 있나요?

POSIX 파일 설명자에서 C fstream을 어떻게 구성할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-12-14 11:58:13
원래의
458명이 탐색했습니다.

How Can I Construct a C   fstream from a POSIX File Descriptor?

POSIX 파일 설명자에서 C fstream 구성

문제:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿