Udostępnij za pośrednictwem


_Write

Zapisuje dane do pliku.

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

Parametry

  • fd
    Plik deskryptora pliku, do którego dane są zapisywane.

  • buffer
    Dane są zapisywane.

  • count
    Liczba bajtów.

Wartość zwracana

W przypadku powodzenia, _write zwraca liczbę bajtów faktycznie zapisane.Jeżeli faktyczna ilość miejsca na dysku jest mniejszy niż rozmiar buforu funkcji próby zapisu na dysku, _write kończy się niepowodzeniem i nie opróżnia dowolną zawartość bufora na dysku.Zwracana wartość –1 wskazuje na błąd.Jeżeli nie przekazano nieprawidłowe parametry, funkcja ta wywołuje obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może w dalszym ciągu, funkcja zwraca wartość -1 i errno jest ustawiona na jeden z trzech wartości: EBADF, co oznacza deskryptor pliku jest nieprawidłowa lub plik nie jest otwarty do zapisu; ENOSPC, oznacza to, nie ma wystarczającej ilości miejsca pozostało na urządzeniu dla tej operacji; lub EINVAL, co oznacza, że buffer został wskaźnik zerowy.

Zobacz _doserrno, errno, _sys_errlist i _sys_nerr uzyskać więcej informacji o tych i innych, kody zwracane.

Jeśli plik jest otwarty w trybie tekstowym, każdy znak wysuwu wiersza zostanie zastąpiona znakiem powrotu karetki – pary wysuwu wiersza w danych wyjściowych.Zastąpienie nie wpływa na wartość zwracaną.

Uwagi

_write Działać zapisy count bajtów z buffer do pliku skojarzonego z fd.Operacja zapisu rozpoczyna się w bieżącym położeniu wskaźnika pliku (jeśli istnieje) skojarzone z danym plikiem.Jeśli plik jest otwarty do dołączania, operacja rozpoczyna się na koniec bieżącego pliku.Po zakończeniu operacji zapisu wskaźnika pliku zwiększa się liczba bajtów zapisanych w rzeczywistości.

Podczas zapisywania plików otwartych w trybie tekstowym, _write traktuje znaku CTRL + Z jako logiczne końca z pliku.Podczas pisania na urządzeniu, _write traktuje znaku CTRL + Z w buforze jako terminator danych wyjściowych.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_write

<io.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

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

Zobacz też

Informacje

Niskiego poziomu we/wy

fwrite

_open, _wopen

_read