Unix File Locks
David Beckemeyer
david at bdt.UUCP
Thu Apr 6 02:58:26 AEST 1989
For years I've seen a lot of Unix code that uses "lockfiles". It is
often of the form:
if (stat(lockpath, &statbuf) == 0)
return(-1); /* lock failed */
if ((lock_fd = creat(lockpath, 0600)) < 0)
return(-1); /* error */
/* lock succeeded */
My question is: Isn't there a race condition between the stat and creat?
I've seen this type of code all over the place and I've never understood
why it works.
Excuse me if this has come up thousands of times before; I've never seen it.
--
David Beckemeyer (david at bdt.UUCP) | "Adios amigos. And, as they say when
Beckemeyer Development Tools | the boys are scratching the bad ones,
478 Santa Clara Ave. Oakland, CA 94610 | 'Stay a long time, Cowboy!'"
UUCP: {uunet,ucbvax}!unisoft!bdt!david | - Jo Mora
More information about the Comp.unix.wizards
mailing list