⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interrupt

📁 Calc Software Package for Number Calc
💻
字号:
Interrupts    While a calculation is in progress, you can generate the SIGINT    signal, and the calculator will catch it.  At appropriate points    within a calculation, the calculator will check that the signal    has been given, and will abort the calculation cleanly.  If the    calculator is in the middle of a large calculation, it might be    a while before the interrupt has an effect.    You can generate the SIGINT signal multiple times if necessary,    and each time the calculator will abort the calculation at a more    risky place within the calculation.	 Each new interrupt prints a    message of the form:	    [Abort level n]    where n ranges from 1 to 3.	 For n equal to 1, the calculator will    abort calculations at the next statement boundary specified by an    ABORT opcode as described below.  For n equal to 2, the calculator    will abort calculations at the next opcode boundary.  For n equal to 3,    the calculator will abort calculations at the next attempt to allocate    memory for the result of an integer arithmetic operation; this    level may be appropriate for stopping a builtin operation like    inversion of a large matrix.    If a final interrupt is given when n is 3, the calculator will    immediately abort the current calculation and longjmp back to the    top level command level.  Doing this may result in corrupted data    structures and unpredictable future behavior, and so should only    be done as a last resort.  You are advised to quit the calculator    after this has been done.ABORT opcodes    If config("trace") & 2 is zero, ABORT opcodes are introduced at    various places in the opcodes for evaluation of command lines    and functions defined by "define ... { ... }" commands.  In the    following, config("trace") has been set equal to 8 so that opcodes    are displayed when a function is defined.   The function f(x)    evaluates x + (x - 1) + (x - 2) + ... until a zero term is    encountered.  If f() is called with a negative or fractional x,    the calculation is never completed and to stop it, an interruption    (on many systems, by ctrl-C) will be necessary.	; config("trace", 8),	; define f(x) {local s; while (x) {s += x--} return s}	0: DEBUG line 2	2: PARAMADDR x	4: JUMPZ 19	6: DEBUG line 2	8: LOCALADDR s	10: DUPLICATE	11: PARAMADDR x	13: POSTDEC	14: POP	15: ADD	16: ASSIGNPOP	17: JUMP 2	19: DEBUG line 2	21: LOCALADDR s	23: RETURN	f(x) defined    (The line number following DEBUG refers to the line in the file    from which the definition is read.)   If an attempt is made to    evaluate f(-1), the effect of the DEBUG at opcode 6 ensures that    a single SIGINT will stop the calculation at a start of    {s += x--} loop.  In interactive mode, with ^C indicating    input of ctrl-C, the displayed output is as in:	; f(-1)	^C	[Abort level 1]	"f": line 2: Calculation aborted at statement boundary    The DEBUG opcodes are disabled by nonzero config("trace") & 2.    Changing config("trace") to achieve this, and defining g(x) with    the same definition as for f(x) gives:	; define g(x) {local s; while (x) {s += x--} return s}	0: PARAMADDR x	2: JUMPZ 15	4: LOCALADDR s	6: DUPLICATE	7: PARAMADDR x	9: POSTDEC	10: POP	11: ADD	12: ASSIGNPOP	13: JUMP 0	15: LOCALADDR s	17: RETURN	g(x) defined    If g(-1) is called, two interrupts are necessary, as in:	; g(-1)	^C	[Abort level 1]	^C	[Abort level 2]	"g": Calculation aborted in opcode## Copyright (C) 1999-2006  David I. Bell, Landon Curt Noll and Ernest Bowen#### Calc is open software; you can redistribute it and/or modify it under## the terms of the version 2.1 of the GNU Lesser General Public License## as published by the Free Software Foundation.#### Calc is distributed in the hope that it will be useful, but WITHOUT## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY## or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU Lesser General## Public License for more details.#### A copy of version 2.1 of the GNU Lesser General Public License is## distributed with calc under the filename COPYING-LGPL.  You should have## received a copy with calc; if not, write to Free Software Foundation, Inc.## 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.#### @(#) $Revision: 29.5 $## @(#) $Id: interrupt,v 29.5 2006/06/10 12:28:10 chongo Exp $## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/interrupt,v $#### Under source code control:	1991/07/21 04:37:21## File existed as early as:	1991#### chongo <was here> /\oo/\	http://www.isthe.com/chongo/## Share and enjoy!  :-)	http://www.isthe.com/chongo/tech/comp/calc/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -