apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Bray <Tim.B...@Sun.COM>
Subject Re: apr_file_* weirdness on Mac OS X
Date Fri, 03 Oct 2008 08:13:28 GMT

On Oct 2, 2008, at 11:58 PM, Bojan Smojver wrote:

> On Thu, 2008-10-02 at 23:40 -0700, Tim Bray wrote:
>
>>     status = apr_file_open(&fp, tempname, APR_FOPEN_WRITE |
>> APR_FOPEN_CREATE, PERMS, pool);
>
> Where does the tempname come from?

static char * dir_of(apr_pool_t * pool, char * path) {
     char * s;
     s = apr_pstrdup(pool, path);
     *(rindex(s, '/')) = 0;
     return s;
}

/* make a temp filename for 'filename' */
static char * temp_filename(apr_pool_t * pool, char * filename) {
     char * tempname = dir_of(pool, filename);
     return apr_psprintf(pool, "%s/%s%ld-%ld", tempname,
                         TEMP_PREFIX, arandom(), arandom());
}

i.e. a randomized name in the same directory.
Here's an example:  filename is /wf1/data/m-a/a/pub/e/entries/ 
collection.atom and tempname is /wf1/data/m-a/a/pub/e/entries/T. 
493459176-1261197826

-Tim

Mime
View raw message