Aracılığıyla paylaş


Yaz _Write

Verileri bir dosyaya yazar.

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

Parametreler

  • fd
    Dosya tanımlayıcısı dosyanın içine veri yazılır.

  • buffer
    Yazılacak veri.

  • count
    Bayt sayısı.

Dönüş Değeri

Başarılı olursa, _write gerçekte yazılan bayt sayısını verir.Diskte kalan gerçek alan işlev çalışıyor diske yazmak için arabellek boyutu küçükse _write başarısız olur ve herhangi bir arabellek içeriği için disk temizleme değil.–1 Dönüş değeri bir hata olduğunu gösterir.Geçersiz parametre belirtilmediyse, bu işlevi geçersiz parametre işleyicisi açıklandığı gibi çağırır Parametre doğrulama.Yürütülmesine devam etmek için izin verilmişse işlev-1 değerini döndürür ve errno üç değerden birini ayarlayın: EBADF, yani dosya tanımlayıcısı geçerli değil veya dosya yazma işlemi için; açılmadı ENOSPC, çalışma; aygıt üzerinde yeterli alan yok anlamına gelir sol veya EINVAL, başka bir deyişle, buffer bir null işaretçi idi.

Bkz: _doserrno, errno, _sys_errlist ve _sys_nerr bu ve diğer ilgili daha fazla bilgi için kodları dönün.

Dosya metin modunda açılırsa, her bir satır besleme karakteri başı – çıkış satır besleme çiftinin yerini alır.Bu değişiklik, dönüş değeri etkilemez.

Notlar

_write İşlev yazma count baytlar buffer ile ilişkili dosya içine fd.Verilen dosya ile ilişkili geçerli konumunu (varsa) dosya işaretçisi yazma işlemi başlar.Dosya ekleme için açık, geçerli dosyanın sonunda işlemi başlar.Yazma işleminden sonra dosya işaretçisi gerçekte yazılan bayt sayısı artırılır.

Metin modunda açılmış dosyaları yazarken _write bir ctrl + z karakteri mantıksal son dosya değerlendirir.Bir aygıt için yazarken _write ctrl + z karakter arabelleği çıktı sonlandırıcı olarak değerlendirir.

Gereksinimler

Yordamı

Gerekli başlık

_write

<io.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

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

Ayrıca bkz.

Başvuru

Alt düzey g/Ç

fwrite

_open, _wopen

_read