SIGPIPE: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м Исправление неоднозначности ПрефиксПрефикс (информатика) с помощью всплывающих окон
м Использование: викификация
Строка 17: Строка 17:
dmesg | less
dmesg | less


создает пайп от программы <code>dmesg</code> (выводящей отладочные сообщения ядра при загрузке) к программе постраничного просмотра <code>less</code>. Если программа <code>less</code> завершится, прежде чем получит весь вывод <code>dmesg</code>, <code>dmesg</code> будет преждевременно завершена сигналом SIGPIPE.
создает пайп от программы <code>[[dmesg]]</code> (выводящей отладочные сообщения ядра при загрузке) к программе постраничного просмотра <code>less</code>. Если программа <code>less</code> завершится, прежде чем получит весь вывод <code>dmesg</code>, <code>dmesg</code> будет преждевременно завершена сигналом SIGPIPE.


SIGPIPE также может получить программа, работающая с сетевым соединением — сокетом, например, при работе по протоколу TCP из семейства [[TCP/IP|IP]].
SIGPIPE также может получить программа, работающая с сетевым соединением — сокетом, например, при работе по протоколу TCP из семейства [[TCP/IP|IP]].

Версия от 14:41, 5 мая 2009

SIGPIPE
Описание запись в разорванное соединение
По умолчанию завершение процесса
Коды SA_SIGINFO
Не имеет специфических кодов

В POSIX-системах, SIGPIPE — сигнал, посылаемый процессу при записи в соединение (пайп, сокет) при отсутствии или обрыве соединения с другой (читающей) стороной.

SIGPIPE — целочисленная константа, определенная в заголовочном файле signal.h. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.

Этимология

SIG — общий префикс сигналов (от англ. signal), PIPE — англ. pipe — труба, соединение.

Использование

Пайп (англ. pipe) однонаправленный канал между процессами, который позволяет одному процессу пересылать данные другому, без необходимости создавать файлы на диске. Когда пайп рвется, процесс, который пытается туда писать получает SIGPIPE.

Наиболее простой вариант пайпа создает шелл Unix, между программами, запускаемыми из командной строки, разделенными символом «|», например, командная строка:

dmesg | less

создает пайп от программы dmesg (выводящей отладочные сообщения ядра при загрузке) к программе постраничного просмотра less. Если программа less завершится, прежде чем получит весь вывод dmesg, dmesg будет преждевременно завершена сигналом SIGPIPE.

SIGPIPE также может получить программа, работающая с сетевым соединением — сокетом, например, при работе по протоколу TCP из семейства IP.