> 백엔드 개발 > C++ > C std::fstream 개체에서 FILE* 핸들을 어떻게 얻을 수 있습니까?

C std::fstream 개체에서 FILE* 핸들을 어떻게 얻을 수 있습니까?

DDD
풀어 주다: 2024-12-22 14:08:10
원래의
830명이 탐색했습니다.

How Can I Obtain a FILE* Handle from a C   std::fstream Object?

std::fstream에서 FILE* 핸들 검색

C 프로그래밍 영역에서 활용하려는 경우가 발생할 수 있습니다. FILE 핸들이 필요한 C 함수입니다. 그러나 표준 C 라이브러리는 파일 입력 및 출력을 위해 std::fstream 클래스를 제공합니다. 따라서 질문이 생깁니다. 기존 std::fstream 객체에서 FILE 핸들을 파생시키는 크로스 플랫폼 접근 방식이 있습니까?

제한 사항

안타깝게도 대답은 부정적이다. std::fstream 클래스는 내부적으로 FILE*을 사용할 의무가 없습니다. std::fstream에서 기본 파일 설명자를 성공적으로 추출하고 FILE 객체를 수동으로 생성하더라도 이후에는 동일한 파일 설명자에 쓰려고 시도하는 여러 버퍼링된 객체로 인해 문제가 발생할 수 있습니다.

대체 고려 사항

FILE*로의 변환을 추구하는 대신 이를 추구하는 이유에 대해 질문하는 것이 좋습니다. 전환. 이 특정 요구 사항 없이 원하는 기능을 달성할 수 있는 다른 방법이 있습니까?

잠재적 접근 방식(권장하지 않음)

어떤 이유로든 변환이 여전히 필수적이라고 간주되는 경우 , funopen() 탐색을 고려해 볼 수 있습니다. 그러나 이 접근 방식은 POSIX API가 아니며 다양한 운영 체제 간 이식성이 불확실합니다. 또한 funopen()의 구현은 플랫폼에 따라 다릅니다.

위 내용은 C std::fstream 개체에서 FILE* 핸들을 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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