boost :: iostreams (1.53.0)를 사용하여 HTTP 요청 본문의 압축을 풀고 나중에 처리하려고합니다. 하지만 다음 코드를 실행하면 충돌이 발생합니다.boost :: iostreams를 사용할 때 크래시가 발생했습니다.
try {
using namespace boost::iostreams;
ifstream file(argv[1], std::ios_base::in | std::ios_base::binary);
boost::iostreams::filtering_istream in;
in.push(gzip_decompressor());
in.push(file);
std::stringstream strstream;
boost::iostreams::copy(in, strstream);
} catch (std::exception& e) {
cout << e.what() << endl;
}
충돌이 부스트의 gzip.hpp에서 (호출 스택을 보면) 더 구체적으로 gzip_header() { reset(); }
에서, gzip_decompressor()
에서 발생합니다.
나는 boost :: iostreams 라이브러리를 컴파일하고 macports에서 부스트를 사용하려고했지만 같은 충돌이 발생합니다. 나는 또한 gzstream library을 사용하여 시도했지만, 생성자에서 더 구체적으로 생성자 igzstream
에서 충돌합니다.
저는 이것이 zlib 관련 문제라고 생각하는 경향이 있습니다. 코드를 작성하고 실행하기 위해 Mountain Lion 및 xCode 4.6이 적용된 MacBook Pro를 사용하고 있습니다.
혹시이 문제가 발생 했습니까?
디버거를 연결하고 충돌의 스택 추적을 게시 할 수 있습니까? –
argv [1]이 실제로 파일을 가리키는 것을 확인 했습니까? – Zac
@Zac gzip_decompressor() 충돌은 제공된 argv와 아무런 관련이 없습니다. 그럼에도 불구하고 올바른 파일 경로를 가리 킵니다. – afp