Bash-Linux.com : Le SHELL pour les nuls

  Actuellement 50 lignes de commande et 1472 man disponibles
login as: root
root@213.186.33.18's password:
Last login: Sun Feb 12 8:17:51 2012 from 38.107.179.228
[root@bash-linux ~] # echo "Bienvenue sur Bash-Linux.com"_
 Manuel des commandes UNIX (man) Version anglaise

Indiquez la fonction :

Man Signal en anglais

SIGNAL(2) Linux Programmer's Manual SIGNAL(2)
 
NAME


signal - ANSI C signal handling
 
SYNOPSIS


#include typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);
 
DESCRIPTION


The behavior of signal() varies across Unix versions, and has also var- ied historically across different versions of Linux. Avoid its use: use sigaction(2) instead. See Portability below. signal() sets the disposition of the signal signum to handler, which is either SIG_IGN, SIG_DFL, or the address of a programmer-defined func- tion (a "signal handler"). If the signal signum is delivered to the process, then one of the fol- lowing happens: * If the disposition is set to SIG_IGN, then the signal is ignored. * If the disposition is set to SIG_DFL, then the default action asso- ciated with the signal (see signal(7)) occurs. * If the disposition is set to a function, then first either the dis- position is reset to SIG_DFL, or the signal is blocked (see Porta- bility below), and then handler is called with argument signum. If invocation of the handler caused the signal to be blocked, then the signal is unblocked upon return from the handler. The signals SIGKILL and SIGSTOP cannot be caught or ignored.
 
RETURN VALUE


signal() returns the previous value of the signal handler, or SIG_ERR on error.
 
ERRORS


EINVAL signum is invalid.
 
CONFORMING TO


C89, C99, POSIX.1-2001.
 
NOTES


The effects of signal() in a multi-threaded process are unspecified. According to POSIX, the behavior of a process is undefined after it ignores a SIGFPE, SIGILL, or SIGSEGV signal that was not generated by kill(2) or raise(3). Integer division by zero has undefined result. On some architectures it will generate a SIGFPE signal. (Also dividing the most negative integer by -1 may generate SIGFPE.) Ignoring this signal might lead to an endless loop. See sigaction(2) for details on what happens when SIGCHLD is set to SIG_IGN. See signal(7) for a list of the async-signal-safe functions that can be safely called from inside a signal handler. The use of sighandler_t is a GNU extension. Various versions of libc predefine this type; libc4 and libc5 define SignalHandler, glibc defines sig_t and, when _GNU_SOURCE is defined, also sighandler_t. Without use of such a type, the declaration of signal() is the somewhat harder to read: void ( *signal(int signum, void (*handler)(int)) ) (int); Portability The only portable use of signal() is to set a signal's disposition to SIG_DFL or SIG_IGN. The semantics when using signal() to establish a signal handler vary across systems (and POSIX.1 explicitly permits this variation); do not use it for this purpose. POSIX.1 solved the portability mess by specifying sigaction(2), which provides explicit control of the semantics when a signal handler is invoked; use that interface instead of signal(). In the original Unix systems, when a handler that was established using signal() was invoked by the delivery of a signal, the disposition of the signal would be reset to SIG_DFL, and the system did not block delivery of further instances of the signal. System V also provides these semantics for signal(). This was bad because the signal might be delivered again before the handler had a chance to reestablish itself. Furthermore, rapid deliveries of the same signal could result in recur- sive invocations of the handler. BSD improved on this situation by changing the semantics of signal han- dling (but, unfortunately, silently changed the semantics when estab- lishing a handler with signal()). On BSD, when a signal handler is invoked, the signal disposition is not reset, and further instances of the signal are blocked from being delivered while the handler is exe- cuting. The situation on Linux is as follows: * The kernel's signal() system call provides System V semantics. * By default, in glibc 2 and later, the signal() wrapper function does not invoke the kernel system call. Instead, it calls sigaction(2) using flags that supply BSD semantics. This default behavior is pro- vided as long as the _BSD_SOURCE feature test macro is defined. By default, _BSD_SOURCE is defined; it is also implicitly defined if one defines _GNU_SOURCE, and can of course be explicitly defined. On glibc 2 and later, if the _BSD_SOURCE feature test macro is not defined, then signal() provides System V semantics. (The default implicit definition of _BSD_SOURCE is not provided if one invokes gcc(1) in one of its standard modes (-std=xxx or -ansi) or defines various other feature test macros such as _POSIX_SOURCE, _XOPEN_SOURCE, or _SVID_SOURCE; see feature_test_macros(7).) * The signal() function in Linux libc4 and libc5 provide System V semantics. If one on a libc5 system includes instead of , then signal() provides BSD semantics.
 
SEE ALSO


kill(1), alarm(2), kill(2), killpg(2), pause(2), sigaction(2), sig- nalfd(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2), bsd_signal(3), raise(3), siginterrupt(3), sigsetops(3), sigvec(3), sysv_signal(3), feature_test_macros(7), signal(7)
 
COLOPHON


This page is part of release 3.05 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2008-07-11 SIGNAL(2)


 Dernières recherches
Man  en anglais Man signal en anglaisMan  en français Man signal en français
Man  en anglais Man msgrcv en anglaisMan  en français Man msgrcv en français
Man  en anglais Man socket en anglaisMan  en français Man socket en français
Man  en anglais Man bounce en anglaisMan  en français Man bounce en français
Man  en anglais Man calloc en anglaisMan  en français Man calloc en français
Man  en anglais Man setuid en anglaisMan  en français Man setuid en français
Man  en anglais Man putenv en anglaisMan  en français Man putenv en français
Man  en anglais Man strtok en anglaisMan  en français Man strtok en français
Man  en anglais Man wcsstr en anglaisMan  en français Man wcsstr en français
Man  en anglais Man reboot en anglaisMan  en français Man reboot en français
Man  en anglais Man fdopen en anglaisMan  en français Man fdopen en français
Man  en anglais Man chattr en anglaisMan  en français Man chattr en français
Man  en anglais Man memchr en anglaisMan  en français Man memchr en français
Man  en anglais Man verify en anglaisMan  en français Man verify en français
Man  en anglais Man packet en anglaisMan  en français Man packet en français

 Recherche

Dans ce moteur de recherche, vous pouvez taper directement votre besoin, en une phrase normale, humaine.
Exemple : vous cherchez comment remplacer un mot par un autre dans tous les fichiers d'un certain dossier. Vous pouvez écrire "Comment remplacer un mot par un autre dans tous les fichiers d'un dossier". Le moteur vous ramenera les résultats en fonction de leur pertinence.
Vous pouvez bien sûr ne chercher qu'un seul mot-clé, par exemple "find".
 Toutes les lignes de code
Par popularité
Par fonction
Recherche avancée
 Les logiciels SHELL/SSH
Putty
Astuces Bash
Faire du SHELL avec PHP!
 La doc officielle
Les man Linux en français
Les man Linux en anglais
 Proposer vos bash
Partagez vos lignes!
 Les requêtes
Déposer une requête
Voir/répondre à une requête
 Quelques sites interessants
Bons sites pour apprendre
 Rechercher