Linux, fcntl, F_SETLEASE and signals

John Lenton jlenton at gmail.com
Wed Jul 21 13:03:56 EDT 2004


On Wed, 21 Jul 2004 12:27:57 -0400, Chris Green <cmg at dok.org> wrote:
> Hey folks,
> 
> Is there anyway for a signal handler in python to get the information
> from a 3 argument signal handler rather than just the signal number
> and stack frame?
> 
> I've got an application where I have to check for F_SETLEASE on a file
> in python on Linux 2.4.  What this does is tells the kernel to notify
> the current process with SIGIO that a particular file descriptor is being
> modified by another process.
> 
> >>> import fcntl
> >>> f = open(".zshrc", "r+")
> >>> fcntl.fcntl(f, fcntl.F_SETLEASE, fcntl.F_WRLCK)
> 0

would this be close enough?

Python 2.3.4 (#2, Jul  5 2004, 09:15:05)
[GCC 3.3.4 (Debian 1:3.3.4-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import fcntl
>>> import ctypes
>>> libc = ctypes.cdll.LoadLibrary('/lib/libc.so.6')
>>> f = open("/home/john/.bashrc")
>>> libc.fcntl(f.fileno(), fcntl.F_SETLEASE, fcntl.F_WRLCK)
0
>>> 
>>> # now someone cats .bashrc
... I/O possible

-- 
John Lenton (jlenton at gmail.com) -- Random fortune:
bash: fortune: command not found



More information about the Python-list mailing list