me->fp = fopen (fnam, "w");
me->fp = fopen (fnam, BIN_W);
PUBLIC HTStream* HTSaveAndExecute ARGS3(	HTPresentation *,	pres,	HTParentAnchor *,	anchor,	/* Not used */	HTStream *,		sink)	/* Not used */#ifdef unix#define REMOVE_COMMAND "/bin/rm -f %s\n"#endif#ifdef VMS#define REMOVE_COMMAND "delete/noconfirm/nolog %s.."#endif#ifdef REMOVE_COMMAND{    char *fnam;    CONST char * suffix;    HTStream* me;    if (HTClientHost) {        HTAlert(CANNOT_SAVE_REMOTE);	return HTBlackHole();    }    me = (HTStream*)malloc(sizeof(*me));    if (me == NULL) outofmem(__FILE__, "Save and execute");    me->isa = &HTFWriter;    /* Save the file under a suitably suffixed name */    suffix = HTFileSuffix(pres->rep, anchor->content_encoding);    fnam = (char *)malloc (L_tmpnam + 16 + strlen(suffix));    if (fnam == NULL)	outofmem(__FILE__, "HTSaveAndExecute");    tmpnam (fnam);    if (suffix) strcat(fnam, suffix);    me->fp = fopen (fnam, "w");    if (!me->fp) {	HTAlert(CANNOT_OPEN_TEMP);        FREE(fnam);	FREE(me);	return NULL;    }/*	Make command to process file*/    me->end_command = 0;    HTSprintf0(&(me->end_command), pres->command, fnam, fnam, fnam);    me->remove_command = NULL;	/* If needed, put into end_command */#ifdef NOPE/*	Make command to delete file*/    me->remove_command = 0;    HTSprintf0(&(me->remove_command), REMOVE_COMMAND, fnam);#endif    me->announce = NO;    FREE(fnam);    return me;}