_write

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

Синтаксис          #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 _read write
Пример:

#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;
}