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