On Mon, Mar 08, 2010 at 03:53:42PM -0500, Jeff Trawick wrote: > On Mon, Mar 8, 2010 at 9:59 AM, Graham Leggett <[email protected]> wrote: ... > > #if APR_HAS_LARGE_FILES && defined(_LARGEFILE64_SOURCE) > > oflags |= O_LARGEFILE; > > #elif defined(O_LARGEFILE) > > if (flag & APR_FOPEN_LARGEFILE) { > > oflags |= O_LARGEFILE; > > } > > #endif > > This might be more interesting., though perhaps when the > configure-time logic to turn on large file support is out of sync with > this code? I'm not sure...
APR_FOPEN_LARGEFILE is intended to be (and is documented as) "advisory" rather than mandatory. Exposing a NONBLOCK flag without attaching *any* semantics to it w.r.t. subsequent read/write calls seems completely wrong. If you want platform-specific behaviour and don't care how badly it interacts with other apr_file_* interfaces then use native open() and apr_os_file_put() to get the APR wrapper. Regards, Joe
