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