Messages in this thread | | | Date | Wed, 17 Jul 2002 15:07:27 -0700 | Subject | Re: close return value (was Re: [ANNOUNCE] Ext3 vs Reiserfs benchmarks) | From | Elladan <> |
| |
On Wed, Jul 17, 2002 at 05:43:57PM +0000, Linus Torvalds wrote: > In article <20020717164933.GA2136@eskimo.com>, > Elladan <elladan@eskimo.com> wrote: > > > >Consider what this says, if a particular OS doesn't pick a standard > >which the application can port to. It means that the *only way* to > >correctly close a file descriptor is like this: > > > >int ret; > >do { > > ret = close(fd); > >} while(ret == -1 && errno != EBADF); > > NO. > > The above is > (a) not portable > (b) not current practice > > The "not portable" part comes from the fact that (as somebody pointed > out), a threaded environment in which the kernel _does_ close the FD on > errors, the FD may have been validly re-used (by the kernel) for some > other thread, and closing the FD a second time is a BUG.
That somebody was me. It appears we're in extremely violent agreement on this issue. We both agree the code I wrote is crap. :-)
-J - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |