Главная » 2016 » Март » 28 » Прочие значения ошибки
12:12
Прочие значения ошибки
Прочие коды ошибки относятся к программным ошибкам или (как ЕЮ) к проблемамна низком уровне. Возможные значения еггпо после сбоя вызова readOвключают в себя:EBADFДанный файловый дескриптор недопустим или не открыт для чтения.EFAULTУказатель, предоставленный вызову при помощи buf, находится за пределамиадресного пространства вызывающего процесса.EINVALФайловый дескриптор соответствует объекту, пс допускающему чтение.ЕЮПроизошла низкоуровневая ошибка ввода-вывода.Лимиты размера для вызова read()Типы size_t и ss ize t определены в POSIX. Тип s ize t используется для хранениязначений, обозначающих размеры, в байтах. Тип ss ize t — это версияsize t со знаком (отрицательные значения обозначают ошибки). В 32-разряд-ных системах дополнительные типы С — это обычно unsigned in t и in t соответственно.Так как эти два типа часто используются вместе, потенциально меньшийдиапазон s s ize t ограничивает диапазон s ize t.Максимальное значение типа s ize t — это SIZE MAX; максимальное значениетипа ssize_t — SSIZE_MAX. Если значение Теп больше SSIZE_MAX, то результаты вызоваread() не определены. В большинстве систем Linux размер SSIZE MAX равенL0NG MAX, то есть 0 x 7 f ffffff на 32-разрядной машине. Это относительно многодля одной операции считывания, но все равно не стоит забывать об этом ограничении.Если вы используете показанный выше цикл считывания для обычногообъемного считывания, то стоит добавлять подобные строки:if (len > SSIZEMAX)len = SSIZF_MAX.Вызов readO с аргументом len, равным нулю, приводит к тому, что немедленновозвращается значение, равное 0.
Просмотров: 246 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar