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-системах.
Смотрите также