Вкратце, как вы можете протестировать условие ошибки, такое как EINTR при системном вызове.Условия ошибки тестирования устройства - EINTR
Один конкретный пример, над которым я работаю, который сам по себе может быть случайным, заключается в необходимости повторного вызова fclose, когда он возвращает EOF с (errno == EINTR). Поведение зависит от реализации fclose:
// Given an open FILE *fp
while (fclose(fp)==EOF && errno==EINTR) {
errno = 0;
}
Этот вызов может быть небезопасным, если fp освобождается при возникновении EINTR. Как я могу проверить обработку ошибок, когда (errno == EINTR)?
По сути, вы говорите о том, чтобы выкрикивать системные вызовы, которые в этом случае должны быть правильными. – tvanfosson 2008-10-07 01:12:08
К сожалению, вы бы издевались над тем, что он хочет проверить. Возникает вопрос: каков статус fp, когда системный вызов * real * прерывается во время закрытия. – bmdhacks 2008-10-07 01:14:42