I implement this program since flock(1) in Linux doesn't support timeout of pending.
I've never used BSD. After reading the link provided by you, I think my program becomes no value, if there is a Linux version of lockf(1). Sad.
Oh, after carefully check the man page of flock(1) in Linux, it supports timeout. So the last value of this program disappears. Please ignore my ignorance and disturbance. I wish I could delete the post but there is no way to do it.