Описание функций Си

Write



     write

Функция Записывает данные в файл.

Синтаксис #include

int write(int handle, void *buf, unsigned len);

Файл, содержащий io.h прототип

Описание write записывает буфер, содержащий данные, в файл или на устройство, соответствующее номеру handle. handle - это логический номер, полученный в опе- рациях creat, open, dup, dup2.

Данная функция делает попытку записи len байтов из буфера, адресуемого параметром buf, в файл, соответствующий номеру handle. За исключением си- туации, при которой функция write записывает дан- ные в текстовый файл, количество байтов, записан- ное в файл, будет не больше, чем требуемое коли- чество.

Максисмальное число байтов, которое write может записать 65534, т.к. 65535(0xFFFF) тоже самое, что и -1, которая является возвращаемым кодом ошибки для write.

В текстовых файлах если write встречает символ перевода строки(LF), она выводит пару CR/LF.

Если число действительно записанных байт меньше, чем задано, то должна быть выдана ошибка и воз- можно это говорит о том, что на диске нет места.

Для дисков и дисковых файлов, запись всегда осу- ществляется с текущего файлового указателя. Для устройств, байты посылаются непосредственно на устройства.

Для файлов, открытых с ключем O_APPEND, файловый указатель устанавливается на EOF, прежде чем бу- дет осуществлена запись данных.

Возвращаемое write возвращает число записанных байтов. При значение записи в текстовый файл генерируемые символы возврата каретки CR не считаются. В случае ошибки write возвращает -1, и устанавливает глобальную переменную errno в:

EACCED - Permission denied; EBADR - Bad file number.

Переносимость write поддерживается на UNIX-системах.

Смотрите также



Содержание раздела