Шрифт:
10.4.3. Игнорирование сигналов
Более практично, когда вызывается обработчик сигнала, это означает, что программа должна завершиться и выйти. Было бы раздражающим, если бы большинство программ по получении
Например, рассмотрите программу
Установка действия
10.4.4. Системные вызовы, допускающие повторный запуск
Значение
Предположим, что система успешно прочла (и заполнила) часть буфера, когда возник
В былые времена (V7, более ранние системы System V)
Медленные устройства
«Медленное устройство» является в сущности терминалом или почти всяким другим устройством, кроме обычного файла. В этом случае
Обычные файлы
Системный вызов был бы запущен повторно В этом случае
Поведение BSD несомненно полезно; вы всегда можете сказать, сколько данных было прочитано.
Поведение POSIX сходно, но не идентично первоначальному поведению BSD. POSIX указывает, что
108
Хотя мы описываем
В противном случае, если сигнал прерывает частично выполненную
10.4.4.1. Пример: GNU Coreutils
Для обработки случая EINTR в традиционных системах GNU Coreutils использует две функции,