i am tring to get the contents of a html file which is present inside the tar file(i am using visual c++ to accomplish my task). my approach is to store the tar in a buffer
Doesn't look too bad except for the errors :-)
skip = ...
instead of skip += ..
, so your position in buffer
is only correct for the second filedo { ... } while()
and the first time you call strstr()
, contents
is already filled with buffer
at some poition skip
> 0). ""
. EDIT and we should of course also check for the tar file size.
I would try it like that:
// I assume size_t bufsize to be the tar file size
size_t skip = 0;
while( bufsize > skip && strcmp( buffer+skip, "" ) != 0 && strstr( buffer+skip, ".html" ) != 0 ) {
int SizeOfFile = CreateOctalToInteger(&buffer[skip+124],11);
size_t distance= ((SizeOfFile%512) ? SizeOfFile + 512 - (SizeOfFile%512) : SizeOfFile );
skip += distance +512;
}
if( bufsize > skip && strstr( buffer+skip, ".html" ) == 0 ) {
// hooray
int SizeOfHTML = CreateOctalToInteger(&buffer[skip+124],11);
char *htmlData = buffer+skip+512;
// do stuff with htmlData
}