signal(2) System Calls Manual signal(2) signal - ANSI C Standard C library (libc, -lc) #include typedef typeof(void (int)) *sighandler_t; sighandler_t signal(int signum, sighandler_t handler); : signal() UNIX Linux. : sigaction(2). . . signal() signum handler, SIG_IGN, SIG_DFL (" "). signum , : * SIG_IGN, . * SIG_DFL, , (. signal(7)). * , SIG_DFL (. ), handler signum. , . SIGKILL SIGSTOP . signal() . SIG_ERR, errno , . EINVAL signum. The use of sighandler_t is a GNU extension, exposed if _GNU_SOURCE is defined; glibc also defines (the BSD-derived) sig_t if _BSD_SOURCE (glibc 2.19 and earlier) or _DEFAULT_SOURCE (glibc 2.19 and later) is defined. The standard definition of signal() is: typeof(void (int)) *signal(int signum, typeof(void (int)) *handler); signal() , SIG_DFL SIG_IGN. signal() ( POSIX.1 ); . POSIX.1 sigaction(2), ; signal(). C11, POSIX.1-2008. C89, POSIX.1-2001. UNIX, , signal(), , SIG_DFL, . sa.sa_flags = SA_RESETHAND | SA_NODEFER; System V signal(). , , . , . BSD , , , signal(). BSD , . , ( signal(7)). BSD sigaction(2) : sa.sa_flags = SA_RESTART; Linux: o signal() System V. o glibc 2 signal() . sigaction(2) , BSD. , _BSD_SOURCE glibc 2.19 _DEFAULT_SOURCE glibc 2.19 ( ; feature_test_macros(7)) . , signal() System V. signal() . POSIX SIGFPE, SIGILL SIGSEGV , kill(2) raise(3). . SIGFPE. (, -1 SIGFPE.) . , SIGCHLD SIG_IGN, sigaction(2). , , signal-safety(7). kill(1), alarm(2), kill(2), pause(2), sigaction(2), signalfd(2), sigpending(2), sigprocmask(2), sigsuspend(2), bsd_signal(3), killpg(3), raise(3), siginterrupt(3), sigqueue(3), sigsetops(3), sigvec(3), sysv_signal(3), signal(7) () Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov , Kirill Rekhov ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () <>. Linux man-pages 6.12 5 2025 . signal(2)