When you are through writing data to a chunk, you complete the write by calling popchunk(): error = PopChunk (iff); If you wrote fewer bytes than you declared with pushchunk(), popchunk() will return an error. If you specified IFFSIZE_UNKNOWN, PopChunk() will seek backward on the stream and write the final size. If you specified a chunk size that was odd, PopChunk() will write the pad byte automatically. pushchunk() and popchunk() nest; every call to pushchunk() must have a corresponding call to PopChunk().