Хотел тут в одном месте заменить fopen/fwrite на creat/write
Посмотрел man по write
Там есть среди возвращаемых ошибок EINTR, типа "попробуйте ещё раз".
Возникло ощущение, что я чего-то не понимаю. Если на эту ошибку всегда надо реагировать одинаковым способом, то почему она не обрабатывается самой функцией? Если же ошибку можно обрабатывать разными способами, то какие ещё есть альтернативы и для чего?
Поискал в гугле и на rsdn, обстоятельного объяснения этому не нашёл. Пишется "так надо потому что надо".
А fwrite уже обрабатывает эту ошибку как надо? Или программа написанная по стандарту C может оказаться неработоспособной в UNIX?
Правильно работающая программа — просто частный случай Undefined Behavior