int ReadStream(handle, buffer, bufferSize, bytesRead) unsigned long handle char * buffer = NO_INIT unsigned long bufferSize unsigned long bytesRead = NO_INIT CODE: SvUPGRADE((SV*)ST(1), SVt_PV); buffer = SvGROW((SV*)ST(1), bufferSize+1); RETVAL = ReadStream(handle, buffer, bufferSize, &bytesRead); buffer[bytesRead] = '\0'; SvCUR_set((SV*)ST(1), bytesRead); (void)SvPOK_only_UTF8((SV*)ST(1)); SvTAINT(ST(1)); SvSETMAGIC(ST(1)); OUTPUT: RETVAL bytesRead