TL;DR
In one of your comments, you state:
Well my exact situation is: I have the path to a file. It is locked if firefox is running. I want to see if its locked or not to tell if firefox is running.
Your original question about lockfiles seems like the long way around when there are easier ways to find out whether Firefox is running for a given user, and to inspect its process state.
Examining Process State
A more sensible way to find the PID of a given process is to use pgrep from the procps package. For example:
$ pgrep -u $LOGNAME firefox
5671
You can then inspect the state of the PID with ps:
$ ps 5671
PID TTY STAT TIME COMMAND
5671 ? Sl 105:47 /usr/lib/firefox/firefox
or just get the state flags without any other cruft:
$ ps -ho stat $(pgrep -u $LOGNAME firefox)
Sl
One my system, the one-liner above consistently takes only 1.4 milliseconds to complete. Your mileage may vary.
Process State Codes
The PROCESS STATE CODES section of ps(1) details what the various state flags mean. On Ubuntu 14.04 the man page says:
PROCESS STATE CODES
Here are the different values that the s, stat and state output
specifiers (header "STAT" or "S") will display to describe the state of
a process:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is
being traced
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by
its parent
For BSD formats and when the stat keyword is used, additional
characters may be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads
do)
+ is in the foreground process group