Sdílet prostřednictvím


_Write

Zapisuje data do souboru.

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

Parametry

  • fd
    Soubor deskriptoru souboru, do kterého jsou data zapsána.

  • buffer
    Zápis dat.

  • count
    Počet bajtů.

Vrácená hodnota

Pokud je úspěšná, _write vrací počet skutečně zapsaných bajtů.Pokud se skutečné místo na disku je menší než velikost vyrovnávací paměti funkce se pokouší o zápis na disk, _write se nezdaří a není žádný obsah do vyrovnávací paměti vyprázdnění na disk.Vrácená hodnota –1 označuje chybu.Pokud jsou předány neplatné parametry, tato funkce vyvolá obsluhu neplatný parametr popsaným v Ověření parametrů.Pokud je povoleno spuštění pokračovat, vrátí funkce hodnotu -1 a errno je nastavena na jednu ze tří hodnot: EBADF, což znamená popisovač souboru je neplatný nebo soubor není otevřen pro zápis; ENOSPC, což znamená, že není dostatek volného místa v zařízení pro operaci. nebo EINVAL, což znamená, že buffer byl ukazatel s hodnotou null.

Viz _doserrno, kód chyby, _sys_errlist a _sys_nerr Další informace o těchto a jiných návratových kódů.

Pokud je soubor otevřen v textovém režimu, každý znak nahrazen CR – dvojice konce řádku ve výstupu.Nahrazení neovlivní vrácenou hodnotu.

Poznámky

_write Funkce zápisy count bajtů z buffer do souboru spojené s fd.Operace zápisu začíná na aktuální pozici ukazatele souboru (pokud existuje) přidružený k danému souboru.Pokud je soubor otevřen pro přidávání, začíná operace aktuální konec souboru.Po operaci zápisu ukazatel souboru je zvýšen počet skutečně zapsaných bajtů.

Při zápisu do souborů otevřených v textovém režimu, _write znak CTRL + Z považovány logické konce souboru.Při zápisu na zařízení, _write považuje znak CTRL + Z vyrovnávací paměti jako zakončení výstup.

Požadavky

Rutina

Požadované záhlaví

_write

<io.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

// 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 );
}
  

Viz také

Referenční dokumentace

Nízké úrovně I/O

fwrite

_open, _wopen

_read