Некоторые системные вызовы могут быть перезапущены прозрачно ядром, если флаг SA_RESTART
используется при установке обработчика сигнала, согласно man signal (7):
Если заблокированный вызов одного из следующих интерфейсов прерывается обработчиком сигнала , то вызов будет автоматически перезапущен после сигнала обработчик возвращает, если использовался флаг SA_RESTART; в противном случае вызов завершится с ошибкой EINTR:
Затем он упоминает некоторые системные вызовы, которые могут (и не могут) быть перезапущены, но не упоминает close()
в обоих местах, как бы я знал, перезаписывается ли close()
или любая другая функция? does POSIX
указать его или это поведение, специфичное для Linux? где можно найти дополнительную информацию?