static OCerror createtempfile(OCstate* state, OCtree* tree) { int fd,slen; char* name; slen = strlen(TMPPATH1); if(slen < strlen(TMPPATH2)) slen = strlen(TMPPATH2); slen += strlen("datadds") + strlen("XXXXXX"); name = (char*)ocmalloc(slen+1); MEMCHECK(name,OC_ENOMEM); fd = createtempfile1(name, TMPPATH1); if(fd < 0) fd = createtempfile1(name, TMPPATH2); if(fd < 0) { oc_log(LOGERR,"oc_open: attempt to open tmp file %s failed",name); return errno; } oc_log(LOGNOTE,"oc_open: using tmp file: %s",name); tree->data.filename = name; /* remember our tmp file name */ tree->data.file = fdopen(fd,"w+"); if(tree->data.file == NULL) return OC_EOPEN; /* unlink the temp file so it will automatically be reclaimed */ if(ocdebug == 0) unlink(tree->data.filename); return OC_NOERR; }
static OCerror createtempfile(OCstate* state, OCtree* tree) { int fd; char* name = NULL; fd = createtempfile1(TMPPATH1,&name); if(fd < 0) fd = createtempfile1(TMPPATH2,&name); if(fd < 0) { oc_log(LOGERR,"oc_open: attempt to open tmp file failed: %s",name); return errno; } #ifdef OCDEBUG oc_log(LOGNOTE,"oc_open: using tmp file: %s",name); #endif tree->data.filename = name; /* remember our tmp file name */ tree->data.file = fdopen(fd,"w+"); if(tree->data.file == NULL) return OC_EOPEN; /* unlink the temp file so it will automatically be reclaimed */ if(ocdebug == 0) unlink(tree->data.filename); return OC_NOERR; }