File open'ness


#1

Is there a way to know if a File is already opened (by any process, be it the actual process or other processes) on OS X? Does OS X actually give this possibility?


#2

i have to say i was wondering about file locking on osx, this is what i found:

http://developer.apple.com/technotes/tn/tn2037.html

i don’t know if this is implemented in File.

from what i see here to check if a file is already opened, kust try to open it in exclusive mode, and it will propably fail with an error, and you will know.


#3

I already read that Technote. What they are describing there is a cooperative locking mechanism that only works for the applications that participate, called “advisory locking”.

On OS X, there is no way to “definitively” lock a file like on windows, where your application can be the only one still being able to access the file.

I think it is also not possible to find out if the file is open by another process or not.


#4

it has to be possible since osx has lsof

http://developer.apple.com/DOCUMENTATION/DARWIN/Reference/ManPages/man8/lsof.8.html

and underneath all that gui stuff os osx is the bsd kernel.