2012-08-05 4 views
0

여러 개의 중간 파일에 데이터를 쓰지 않고 많은 수의 "입력"데이터를 여러 개의 bzip2 스트림으로 압축하려고합니다.BZ2_bzBuffToBuffCompress()를 반복적으로 호출 할 수 있습니까?

입력 데이터 덩어리를 버퍼에 넣을 수 있습니까? BZ2_bzBuffToBuffCompress()을 사용하여 해당 버퍼를 bzip2 맞춤형 바이트로 압축하고 입력 데이터가 더 이상 남아 있지 않을 때까지 신선한 데이터를 BZ2_bzBuffToBuffCompress() 번 호출합니다. 이러한 방식으로

압축이 함수에 대한 단일 호출하여 수행 한 샷 이벤트입니다 :

bzip2 documentation은 다음을 말한다. 결과 압축 데이터는 완전한 bzip2 형식 데이터 스트림입니다. 추가 입력 데이터를 제공하기 위해 추가 호출을 수행 할 수있는 메커니즘이 없습니다. 이런 종류의 메커니즘을 원하면 하위 인터페이스를 사용하십시오.

새로 입력 된 버퍼 크기의 청크에 BZ2_bzBuffToBuffCompress()을 다시 실행할 수 없다는 뜻입니까? 대신 BZ2_bzWrite()을 사용해야합니까?

편집은

사실 하나 개 이상의 bzip 스트림을 포함 할 수 있습니다 하나 개의 아카이브 파일로 출력 의미했다.

+0

문서를 읽을 때 이미 압축 된 버퍼에 더 많은 데이터를 추가 (추가) 할 수는 없지만 압축 된 여러 스트림이나 버퍼를 만드는 것은 괜찮습니다. –

답변

1

당신은 모든 당신이 좋아하는 새 데이터로 BZ2_bzBuffToBuffCompress()를 호출 유지할 수 있습니다, 당신은 당신이이었다 당신이 원한다고 생각 생성합니다 : 나는 복수의 bzip2로 압축 할

데이터가

스트림

그게 바로 당신이 얻는 것입니다. 여러 개의 bzip2 스트림. 그런 다음 각 스트림을 별도로 디코딩해야합니다.

당신이 버퍼의 일련을하고 밖으로 단일의 bzip2 스트림을 확인하려면 다음 사용해야합니다 BZ2_bzCompressInit, BZ2_bzCompressBZ2_bzCompressEnd.

+0

감사합니다. 두 번째 제안은 내가 생각한 것입니다. 이것을 검증하고 이것을 확인한 후에 답을 표시 할 것입니다. –