about second parameter of signal handler func.
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Tue Mar 27 11:14:00 EDT 2007
En Tue, 27 Mar 2007 02:34:48 -0300, Bjoern Schliessmann
<usenet-mail-0306.20.chr0n0ss at spamgourmet.com> escribió:
>> In C, a signal handler function has only one parameter, that is
>> signal number. But in Python(import signal), a signal handler
>> function has two parameters, the first is signal number, the
>> second is "frame"?
>>
>> What is "frame", please?
>
> Did you bother using help()?
The help text is of little help if you don't know what is it talking
about...
The Python signal handler has additional information: you know *what* was
being executed when the signal was caught (or nearly).
A little example:
import signal
def babies(n):
if n<=1: return 1
return adults(n-1)
def adults(n):
if n<=1: return 0
return adults(n-1)+babies(n-1)
def fibom(n):
return adults(n)+babies(n)
def handler(signum, frame):
print "At",frame.f_code.co_name, "in", frame.f_code.co_filename,
"line", frame.f_lineno
# Press CTRL-C to see what's being executed
signal.signal(signal.SIGINT, handler)
for n in range(50):
print n, fibom(n)
--
Gabriel Genellina
More information about the Python-list
mailing list