<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-menu-disabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-os vector-sticky-header-enabled skin-theme-clientpref-thumb-standard" lang="uk" dir="ltr"><head>
    <meta charset="UTF-8">
    <title>Signal.h</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" type="image/png" href="./_res_/favicon.png">
    <link rel="canonical" href="https://uk.wikipedia.org/wiki/Signal.h"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
    <meta name="ResourceLoaderDynamicStyles" content="">
    
    <link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
    <link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
    <link rel="stylesheet" type="text/css" href="./_res_/footer.css">
    <link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
  </head>
  <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Signal_h rootpage-Signal_h skin-vector-2022 action-view">
    <div class="mw-page-container">
      <div class="mw-page-container-inner">
        <div class="mw-content-container">
          <main id="content" class="mw-body">
            <header class="mw-body-header vector-page-titlebar">
              <h1 id="firstHeading" class="firstHeading mw-first-heading">signal.h</h1>
            </header>
            <a id="top"></a>
            <div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
              <div id="contentSub">
                <div id="mw-content-subtitle"></div>
              </div>
              <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="uk" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="uk" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r44188005">
/* start https://uk.wikipedia.org/ */


.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}


/* end   https://uk.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks" role="navigation" style="width: auto;"><tbody><tr><th class="sidebar-heading">
<a href="%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0_%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B8_C" title="Стандартна бібліотека мови C">Заголовні файли C</a></th></tr><tr><td class="sidebar-content" style="text-align: left;">
<ul><li><a href="Assert.h" title="Assert.h">assert.h</a></li>
<li><a href="Complex.h" title="Complex.h">complex.h</a></li>
<li><a href="Ctype.h" title="Ctype.h">ctype.h</a></li>
<li><a href="Errno.h" title="Errno.h">errno.h</a></li>
<li><a href="Fenv.h" title="Fenv.h">fenv.h</a></li>
<li><a href="Float.h" title="Float.h">float.h</a></li>
<li><a href="Inttypes.h" title="Inttypes.h">inttypes.h</a></li>
<li><a href="Iso646.h" title="Iso646.h">iso646.h</a></li>
<li><a href="Limits.h" title="Limits.h">limits.h</a></li>
<li><a href="Locale.h" title="Locale.h">locale.h</a></li>
<li><a href="Math.h" title="Math.h">math.h</a></li>
<li>setjmp.h</li>
<li><a class="mw-selflink selflink">signal.h</a></li>
<li>stdarg.h</li>
<li><a href="Stdbool.h" title="Stdbool.h">stdbool.h</a></li>
<li><a href="Stddef.h" title="Stddef.h">stddef.h</a></li>
<li><a href="Stdint.h" title="Stdint.h">stdint.h</a></li>
<li><a href="Stdio.h" title="Stdio.h">stdio.h</a></li>
<li>stdlib.h</li>
<li><a href="String.h" title="String.h">string.h</a></li>
<li>tgmath.h</li>
<li><a href="Time.h" title="Time.h">time.h</a></li>
<li><a href="Wchar.h" title="Wchar.h">wchar.h</a></li>
<li><a href="Wctype.h" title="Wctype.h">wctype.h</a></li></ul></td>
</tr></tbody></table>
<p><b>signal.h</b> — <a href="%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B8%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB" title="Заголовний файл">заголовний файл</a> <a href="%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0_%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%A1" class="mw-redirect" title="Стандартна бібліотека С">стандартної бібліотеки</a> <a href="%D0%A1_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" class="mw-redirect" title="С (мова програмування)">мови програмування С</a>, що використовується для зазначення того, як програма обробляє <a href="%D0%A1%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB_(UNIX)" class="mw-redirect" title="Сигнал (UNIX)">сигнали</a> під час свого виконання. Сигнал може сповіщати про деяке відхилення від очікуваної поведінки програми (як, наприклад, ділення на нуль) або про деякі асинхронні події, що відбулися поза програмою (наприклад, якщо хтось натиснув кнопку переривання програми на клавіатурі).
</p><p>Сигнал може генеруватися при виклику RAISE (посилає сигнал поточному процесові) або Kill (посилає сигнал будь-якого процесу). Кожна реалізація визначає якийсь сигнал, що генерує і визначає їх генерацію. Реалізація може визначати сигнали, які відрізняються від перерахованих тут. Стандартний заголовний файл &lt;signal.h&gt; може визначати додаткові макроси з іменами, які починаються з SIG, для вказання значення цих додаткових сигналів. Усі подібні значення є цілими константні виразами &gt;= 0.
</p><p>Можна вказувати обробник сигналу для усіх сигналів, окрім двох (SIGKILL та SIGSTOP не можуть бути перехоплені, блоковані або проігноровані). Обробник сигналу — функція, яка направляє виклики оточенню, коли приймає відповідний сигнал. Цільове оточення призупиняє виконання програми, доки обробник сигналу не поверне значення або викличе перехід (longjmp). Для максимальної переносимості, асинхронний обробник сигналу повинен:
</p>
<ul><li>здійснювати (успішний) виклик сигналу функції</li>
<li>присвоювати значення об'єктів з типом «непов'язана змінна» sig_atomic_t</li>
<li>повертати управління</li></ul>
<p>Якщо сигнал сповіщає про помилку всередині програми (а сигнал не асинхронний), то обробник сигналу може завешить її виконання, викликавши Abort, Exit або longjmp.
</p>

<div class="mw-heading mw-heading2"><h2 id="Методи"><span id=".D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D0.B8"></span>Методи</h2></div>
<ul><li><code>int raise(int sig)</code>. Штучно викликає сигнал.</li></ul>
<ul><li><code>psignal(int sig, const char *s)</code>, виводить на <a href="Stderr" class="mw-redirect" title="Stderr">stderr</a> рядок, який містить номер сигналу. Застосовується у <a href="BSD" class="mw-redirect" title="BSD">4.3BSD</a>, <a href="Solaris_(%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D1%96%D0%B9%D0%BD%D0%B0_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0)" title="Solaris (операційна система)">Solaris</a> та <a href="Linux" title="Linux">Linux</a>, однак, не вказаний у стандартах <a href="POSIX" title="POSIX">POSIX</a> та SUS.</li></ul>
<p>На тих же системах <a href="String.h" title="String.h">string.h</a> містить нестандартний <code>strsignal(int sig)</code>, який працює аналогічно <a href="Strerror" title="Strerror">strerror</a>.
</p>
<ul><li><code>void (*signal(int sig, void (*func)(int)))(int)</code> назначає дію, яку програма виконуватиме при отриманні сигналу <code>sig</code>. Якщо значення func рівне SIG_DFL, то відбувається обробка за замовчуванням для сигналу. Якщо значення func рівне SIG_IGN, сигнал ігнорується. В інших випадках, func вказує на функцію <i>обробник сигналу</i> при отриманні сигналу.</li></ul>
<p>Функція func може завершуватись виконанням операції виклику або викликом функції самозавершення, виводу або переходу.
</p>
<div class="mw-heading mw-heading2"><h2 id="Члени-типи"><span id=".D0.A7.D0.BB.D0.B5.D0.BD.D0.B8-.D1.82.D0.B8.D0.BF.D0.B8"></span>Члени-типи</h2></div>
<p><code>typedef i-type sig_atomic_t</code>
</p>
<div class="mw-heading mw-heading2"><h2 id="Члени-макроси"><span id=".D0.A7.D0.BB.D0.B5.D0.BD.D0.B8-.D0.BC.D0.B0.D0.BA.D1.80.D0.BE.D1.81.D0.B8"></span>Члени-макроси</h2></div>
<ul><li>SIG_DFL — Використовується для вказання способу обробки сигналів за замовчуванням.</li>
<li>SIG_IGN — Використовується для ігнорування сигналу.</li>
<li>SIG_ERR — Код помилки.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Члени-константи"><span id=".D0.A7.D0.BB.D0.B5.D0.BD.D0.B8-.D0.BA.D0.BE.D0.BD.D1.81.D1.82.D0.B0.D0.BD.D1.82.D0.B8"></span>Члени-константи</h2></div>
<table>

<tbody><tr>
<th>Константа</th>
<th>Значення</th>
<th>Стандарти
</th></tr>
<tr>
<td><a href="SIGHUP" title="SIGHUP">SIGHUP</a></td>
<td>Відбій</td>
<td>POSIX</td>
<td>
</td></tr>
<tr>
<td><a href="SIGINT_(POSIX)" title="SIGINT (POSIX)">SIGINT</a></td>
<td>Переривання</td>
<td>ANSI
</td></tr>
<tr>
<td><a href="SIGQUIT" title="SIGQUIT">SIGQUIT</a></td>
<td>Вихід</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGILL" title="SIGILL">SIGILL</a></td>
<td>Недопустима інструкція</td>
<td>ANSI
</td></tr>
<tr>
<td><a href="SIGABRT" title="SIGABRT">SIGABRT</a></td>
<td>Самозупинка</td>
<td>ANSI
</td></tr>
<tr>
<td><a href="SIGTRAP" title="SIGTRAP">SIGTRAP</a></td>
<td>Перехоплення події</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGABRT" title="SIGABRT"> SIGIOT</a></td>
<td>Перехоплення вводу-виводу</td>
<td>4.2 BSD
</td></tr>
<tr>
<td>SIGEMT</td>
<td>Перехоплення емуляції</td>
<td>4.2 BSD
</td></tr>
<tr>
<td><a href="SIGFPE" title="SIGFPE">SIGFPE</a></td>
<td>Виняткова ситуація обчислення з рухомою комою</td>
<td>ANSI
</td></tr>
<tr>
<td><a href="SIGKILL" title="SIGKILL">SIGKILL</a></td>
<td>Неперехоплюваний сигнал завершення</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGBUS" title="SIGBUS">SIGBUS</a></td>
<td>Помилка шини</td>
<td>4.2 BSD
</td></tr>
<tr>
<td><a href="SIGSEGV" title="SIGSEGV">SIGSEGV</a></td>
<td>Порушення сегментації</td>
<td>ANSI
</td></tr>
<tr>
<td><a href="SIGSYS" title="SIGSYS">SIGSYS</a></td>
<td>Неправильний аргумент у системному виклику</td>
<td>4.2 BSD
</td></tr>
<tr>
<td><a href="SIGPIPE" title="SIGPIPE">SIGPIPE</a></td>
<td>Порушення каналу</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGALRM" title="SIGALRM">SIGALRM</a></td>
<td>Завершення часу</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGTERM" title="SIGTERM">SIGTERM</a></td>
<td>Завершення</td>
<td>ANSI
</td></tr>
<tr>
<td><a href="SIGUSR1" class="mw-redirect" title="SIGUSR1">SIGUSR1</a></td>
<td>Користувацький сигнал 1</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGUSR2" class="mw-redirect" title="SIGUSR2">SIGUSR2</a></td>
<td>Користувацький сигнал 2</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGCHLD" title="SIGCHLD">SIGCHLD</a></td>
<td>Зміна статусу дочірнього процесу</td>
<td>POSIX
</td></tr>
<tr>
<td><a href="SIGCHLD" title="SIGCHLD"> SIGCLD</a></td>
<td>Аналогічно SIGCHLD</td>
<td>System V
</td></tr>
<tr>
<td><a href="SIGPWR" title="SIGPWR">SIGPWR</a></td>
<td>Перезапуск після проблеми із живленням</td>
<td>System V
</td></tr>
<tr>
<td><a href="SIGXCPU" title="SIGXCPU">SIGXCPU</a></td>
<td>Обмеження процесорного часу</td>
<td>POSIX
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Посилання"><span id=".D0.9F.D0.BE.D1.81.D0.B8.D0.BB.D0.B0.D0.BD.D0.BD.D1.8F"></span>Посилання</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html">signal.h</a> <small>[<a rel="nofollow" class="external text" href="https://web.archive.org/web/20091025174604/http://www.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html">Архівовано</a> 25 жовтня 2009 у <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>.]</small> на OpenGroup</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20081231030403/http://www.dinkumware.com/manuals/?manual=compleat&amp;page=signal.html">Посібник по signal.h на dinkumware</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
    This article is issued from <a class="external text" title="Last edited on 2026-03-26" href="https://uk.wikipedia.org/wiki/?title=Signal.h&amp;oldid=47732732">Вікіпедія</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.uk">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
            </div>
          </main>
        </div>
      </div>
    </div>
     <script src="./_webp_/webpHandler.js"></script>
  

</body></html>