Функция Записывает данные в файл.
Синтаксис #include
int _write(int handle, void *buf, unsigned len);
Файл, содержащий io.h
прототип
Описание Данная функция делает попытку записи len байт
из буфера, адресуемого параметром buf, в файл,
соответствующий номеру handle.
Максимальное число байтов, которое _write может
записать 65534, т.к. 65535(0xFFFF) тоже самое,
что и -1, что является возвращаемым кодом ошибки
для _write.
_write не преобразует символ перевода строки
(LF), в пару CR/LF, поскольку все файлы рассмат-
ривает как двоичные.
Если число действительно записанных байтов мень-
ше, чем задано, то должна быть выдана ошибка и
возможно это говорит, что на диске нет места.
Для дисков и дисковых файлов, запись всегда осу-
ществляется с текущего файлового указателя. Для
устройств, байты посылаются непосредственно на
устройства.
Для файлов открытых опцией O_APPEND, файловый
указатель не устанавливается на EOF функцией
_write, прежде чем будет осуществлена запись дан-
ных.
Возвращаемое _write возвращает число записанных байтов.В случае
значение ошибки _write возвращает -1, и устанавливает гло-
бальную переменную errno в:
EACCED - Permission denied;
EBADR - Bad file number.
Переносимость _write уникальна для DOS.
Смотрите также lseek_readwrite
Пример:
#include
#include
#include
#include
#include
#include
int main(void)
{
void *buf;
int handle, bytes;
buf = malloc(200);
/* Создать в текущей директории файл TEST.$$$ и записать в
него 200 байт. Если такой файл уже существует, то он будет
перезаписан */
if((handle = open("TEST.$$$",O_CREAT|O_WRONLY|O_BINARY,
S_IWRITE|S_IREAD)) == -1)
{
printf("Ошибка при открытии файла\n");
exit(1);
}
if((butes = _write(handle, buf, 200)) == -1)
{
printf("Ошибка при записи.\n");
exit(1);
}
printf("Записано %d байт",bytes);
close(handle); /* прим. пер. в оригинале close отсутсвует */
return 0;
}