Среда, 21.08.2019, 17:12
Приветствую Вас, Гость
Главная » 2012 » Август » 28 » Значения ошибок win
11:16
Значения ошибок win
Очень часто в программах не проверяют возвращаемое значение вызова c lo se ( ).Если не выполнить такую проверку, то можно пропустить критическое условиеошибки, так как ошибки, связанные с отложенными операциями, могут не проявляться довольно долго, а при помощи closeO их вполне можно отлавливать.Существует несколько возможных значений переменной еггпо, возвращаемых в случае ошибки. Помимо EBADF (данный дескриптор файла недопустим),наиболее важное значение ошибки — это ЕЮ, указывающее на низкоуровневуюошибку ввода-вывода, возможно, не связанную с фактической операцией закрытия.Независимо от того, какая ошибка возвращается, дескриптор файла,если он допустим, всегда закрывается, а связанные с ним структуры данныхосвобождаются.Хотя POSIX допускает это, вызов closeO никогда не возвращает значениеEINTR. Разработчики ядра Linux лучше знают, что такая реализация не блещетсмыслом.Поиск за пределами конца файлаВызов lseekO можно применять также для перемещения указателя файла запределы файла. Например, следующий код переносит указатель на 1688 байтдальше, чем находится конец файла, соответствующий дескриптору fd:i n t ret .ret = lseek (fd. (of f_t ) 1688. SEFKJND) .i f (ret. == (of f_t ) 1)/* ошибка */Сам по себе поиск дальше конца файла ничего не дает — запрос на чтениес новой позиции в файле вернет значение EOF. Если же делается запрос на запись с этой новой позиции, то между старым концом файла новым агментомсоздается новое пространство, которое заполняется нулями.Это заполненное нулями пространство называется дырой (hole). В файловыхсистемах типа Unix дыры не занимают место на диске. Это означает, чтообщий размер всех файлов в файловой системе может превышать физический размер диска. Файлы с дырами называются разреженными файлами (sparsefile). Разреженные файлы экономят пространство и повышают производительность,так как манипулирование дырами не требует никакого физического ввода-вывода.Запрос на чтение, сделанный в тот фрагмент файла, который является дырой,возвращает соответствующее число двоичных нулей.
Очень часто в программах не проверяют возвращаемое значение вызова c lo se ( ).
Если не выполнить такую проверку, то можно пропустить критическое условие
ошибки, так как ошибки, связанные с отложенными операциями, могут не проявляться
довольно долго, а при помощи closeO их вполне можно отлавливать.
Существует несколько возможных значений переменной еггпо, возвращаемых в случае ошибки. Помимо EBADF (данный дескриптор файла недопустим), наиболее важное значение ошибки — это ЕЮ, указывающее на низкоуровневую ошибку ввода-вывода, возможно, не связанную с фактической операцией закрытия. Независимо от того, какая ошибка возвращается, дескриптор файла, если он допустим, всегда закрывается, а связанные с ним структуры данных освобождаются. Хотя POSIX допускает это, вызов closeO никогда не возвращает значение EINTR. Разработчики ядра Linux лучше знают, что такая реализация не блещет смыслом. Поиск за пределами конца файла Вызов lseekO можно применять также для перемещения указателя файла за пределы файла. Например, следующий код переносит указатель на 1688 байт.

Проститутки развлекают все желающих. Только превосходные и красивые проститутки Красноярска доставят незабываемое удовольствие
Просмотров: 367 | Добавил: piligrim | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: