В случае ошибки вызов 1 seek О возвращает значение 1 и присваивает переменной еггпо одно из следующих четырех значений: EBADF Указанный дескриптор файла не открыт. ( Read more... )
Очень часто в программах не проверяют возвращаемое значение вызова c lo se ( ). Если не выполнить такую проверку, то можно пропустить критическое условие ошибки, так как ошибки, связанные с отложенными операциями, могут не проявляться ( Read more... )
Не такой оптимальный, но более масштабный консервативный системный вызов sync() обеспечивает синхронизацию всех буферов с диском: #include ( Read more... )
В случае успеха оба вызова возвращают значение 0. В случае сбоя оба вызова возвращают -1 и присваивают переменной еггпо одно из следующих трех значений: ( Read more... )
К счастью, данные в кэше жесткого диска должны фиксироваться на диске незамедлительно. В Linux также предусмотрен системный вызов fdatasyncO: finclude ( Read more... )
Хотя синхронизация ввода-вывода - это очень важная тема, не следует бояться вопросов, связанных с отложенной записью. Буферизация записи обеспечивает ( Read more... )
Еще один вопрос, связанный с отложенной записью, - это невозможность принудительно реализовывать упорядочение записи (write ordering). Хотя приложение может пытаться упорядочивать запросы на запись, чтобы эти данные ( Read more... )
Если значение count превышает значение SSIZE_MAX, то результат вызова writeO не определен. Если выполнить write() со значением count, равным нулю, то вызов мгновенно вернет значение 0. ( Read more... )
Когда файл fd открывается в режиме без блокировки (при помощи флага 0 N0NBL0CK) и выполняется запись, которая в обычных условиях заблокирова- лась бы, системный вызов w r iteO возвращает значение -1 и присваивает переменной ( Read more... )
Системный вызов write() выполняет лишь частичную запись с меныпей вероятностью, чем системный вызов readO делает частичное считывание. Помимо этого, для системного вызова w r iteO не существует условия EOF. Что касается ( Read more... )