Поделиться через


_write

Записывает в него данные.

int _write(
   int fd,
   const void *buffer,
   unsigned int count 
);

Параметры

  • fd
    Идентификатор файла, в который записываются данные.

  • buffer
    Данные для записи.

  • count
    Число байтов.

Возвращаемое значение

В случае успешного выполнения; _write возвращает число фактически записанных байтов.Если фактическая оставшегося места на диске, чем размер буфера функция пытается записать на диск _write завершается ошибкой и не топят содержимое любого буфера на диск.Возвращаемое значение - 1 указывает на ошибку.Если переданы недопустимые параметры, то функция вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то функция возвращает значение -1, errno набор одно из 3 значений: EBADFидентификатор файла, то есть является недопустимым или файл не открыт для записи; ENOSPC, который означает, что не является достаточно места влево на устройство для операции; OR EINVALозначает то, поэтому она buffer был указатель null.

См. _doserrno, errno, _sys_errlist и _sys_nerr дополнительные сведения об этих и других, кодов возврата.

Если файл открыт в режиме текст, то каждый символ перевода строки заменяется возврата каретки - ключом перевода строки в вывод.Замена не влияет на возвращаемое значение.

Заметки

_write записи функции count байты из buffer в файл, связанный с fd.Начинает операцию записи в текущей позиции указателя файла (если таковые имеются), связанного с данным файлом.Если файл открыт для добавления, то операция начинается в текущем конце файла.После операции записи, то указатель файла увеличивается на число фактически записанных байтов.

При записи к файлам, открытый в режиме текста _write обрабатывает символ CTRL+Z, как логический конец файла.При записи на устройство, _write обрабатывает символ CTRL+Z в буфере как признак вывода.

Требования

Процедура

Обязательный заголовок

_write

<io.h>

Дополнительные сведения о совместимости см. Совместимость во введении.

Пример

// crt__write.c
// 
// This program opens a file for output and uses _write to write
// some bytes to the file.

#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <share.h>

char buffer[] = "This is a test of '_write' function";

int main( void )
{
   int         fileHandle = 0;
   unsigned    bytesWritten = 0;

   if ( _sopen_s(&fileHandle, "write.o", _O_RDWR | _O_CREAT,
                  _SH_DENYNO, _S_IREAD | _S_IWRITE) )
      return -1;

   if (( bytesWritten = _write( fileHandle, buffer, sizeof( buffer ))) == -1 )
   {
      switch(errno)
      {
         case EBADF:
            perror("Bad file descriptor!");
            break;
         case ENOSPC:
            perror("No space left on device!");
            break;
         case EINVAL:
            perror("Invalid parameter: buffer was NULL!");
            break;
         default:
            // An unrelated error occured 
            perror("Unexpected error!");
      }
   }
   else
   {
      printf_s( "Wrote %u bytes to file.\n", bytesWritten );
   }
   _close( fileHandle );
}
  

См. также

Ссылки

ВВОДА-ВЫВОДА низкого уровня

fwrite

_open, _wopen

_read