On Sun, Dec 18, 2011 at 06:58:22PM +0100, vicent roca daniel wrote: > I'm trying to write the output of a command exectution using libssh2 to a > file: > Some code: > > > /*** definitions, etc...***/ > > sprintf(filename, "/tmp/.aom/%d-%s.json", epoch, host); > filefinal = fopen(filename, "w"); > > /* execute the command...*/ > > char buffer2[1024*4]; > > while( (read = libssh2_channel_read( channel, buffer2, sizeof(buffer2))) > != > 0 ) > { > > //buffer2[read-1] = '\0'; > fwrite(buffer2, sizeof(char), read, filefinal); > > } > > /* closing the file ,etc...*/ > > > The problem here is tha if this loop iterates only one time, I get some extra > data at the end of the file. > I've check that I read and write the same amount of bytes.+ > > I'm totally lost... any pointers? > Thank you :)
Note that libssh2_channel_read() can return something other than a size, namely an error code. I'm not sure what fwrite will do when presented with a negative size, but it could very well write garbage. >>> Dan _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel