📄 signal.h
字号:
#pragma force_top_level
#pragma include_only_once
/* signal.h: ANSI 'C' (X3J11 Oct 88) library header, section 4.7 */
/* Copyright (C) Codemist Ltd., 1988-1993. */
/* Copyright (C) Advanced Risc Machines Ltd., 1991-1993. */
/* version 0.03 */
/*
* signal.h declares a type and two functions and defines several macros, for
* handling various signals (conditions that may be reported during program
* execution).
*/
#ifndef __signal_h
#define __signal_h
#ifdef __cplusplus
extern "C" {
#endif
typedef int sig_atomic_t;
/* type which is the integral type of an object that can be modified as */
/* an atomic entity, even in the presence of asynchronous interrupts. */
extern void __SIG_DFL(int);
extern void __SIG_ERR(int);
extern void __SIG_IGN(int);
/*
* Each of the following macros expand to a constant expression with a
* distinct value and has the same type as the second argument to, and the
* return value of the signal function, and whose value compares unequal to
* the address of any declarable function.
*/
#define SIG_DFL &__SIG_DFL
#define SIG_ERR &__SIG_ERR
#define SIG_IGN &__SIG_IGN
/*
* Each of the following macros expand to a positive integral constant
* expression that is the signal number corresponding the the specified
* condition.
*/
#define SIGABRT 1 /* abort */
#define SIGFPE 2 /* arithmetic exception */
#define SIGILL 3 /* illegal instruction */
#define SIGINT 4 /* attention request from user */
#define SIGSEGV 5 /* bad memory access */
#define SIGTERM 6 /* termination request */
#define SIGSTAK 7 /* stack overflow */
/* (these following macros are not part of the ANSI standard,
* but private to this implementation
*/
/* Signal numbers 8 and 9 are available for the user */
#define SIGUSR1 8
#define SIGUSR2 9
#define SIGOSERROR 10
extern void (*signal (int /*sig*/, void (* /*func*/ )(int)))(int);
/*
* Chooses one of three ways in which receipt of the signal number sig is to
* be subsequently handled. If the value of func is SIG_DFL, default
* handling for that signal will occur. If the value of func is SIG_IGN, the
* signal will be ignored. Otherwise func shall point to a function to be
* called when that signal occurs.
* When a signal occurs, if func points to a function, first the equivalent
* of signal(sig, SIG_DFL); is executed. (If the value of sig is SIGILL,
* whether the reset to SIG_DFL occurs is implementation-defined (under
* RISCOS/Arthur/Brazil the reset does occur)). Next the equivalent of
* (*func)(sig); is executed. The function may terminate by calling the
* abort, exit or longjmp function. If func executes a return statement and
* the value of sig was SIGFPE or any other implementation-defined value
* corresponding to a computational exception, the behaviour is undefined.
* Otherwise, the program will resume execution at the point it was
* interrupted.
* If the signal occurs other than as a result of calling the abort or raise
* function, the behaviour is undefined if the signal handler calls any
* function in the standard library other than the signal function itself
* or refers to any object with static storage duration other than by
* assigning a value to a volatile static variable of type sig_atomic_t.
* At program startup, the equivalent of signal(sig, SIG_IGN); may be
* executed for some signals selected in an implementation-defined manner
* (under RISCOS/Arthur/Brazil this does not occur); the equivalent of
* signal(sig, SIG_DFL); is executed for all other signals defined by the
* implementation.
* Returns: If the request can be honoured, the signal function returns the
* value of func for most recent call to signal for the specified
* signal sig. Otherwise, a value of SIG_ERR is returned and the
* integer expression errno is set to indicate the error.
*/
extern int raise(int /*sig*/);
/* sends the signal sig to the executing program. */
/* Returns: zero if successful, non-zero if unsuccessful. */
#ifdef __cplusplus
}
#endif
#endif
/* end of signal.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -