The man page for lockf describes a failed lock sets errno=EACCES (Permission denied). But errno is set to EAGAIN (Try again) instead. man page should be changed. uname -a: Linux minime 2.6.15-gentoo-r1 #2 Wed Feb 8 10:50:35 CET 2006 i686 VIA Samuel 2 CentaurHauls GNU/Linux sys-libs/glibc Latest version installed: 2.3.5-r2 repeat: write program with { errno = 0; lock_fd = open( LOCK_FILE, O_RDWR|O_CREAT, 0644 ); retval = lockf( lock_fd, F_TLOCK, 0 ); printf("retval %d, errno %d, %d\n", retval, errno, EACCES ); sleep ( 10 ); retval = close( lock_fd ); } 1. time returns "retval 0, errno 0, 13" 2. time returns "retval -1, errno 11, 13"
Please, report this to upstream manpages maintainer - http://www.win.tue.nl/~aeb/linux/man/