共用方式為


_write

您可以將資料寫入檔案。

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

參數

  • fd
    資料寫入其中的檔案的檔案描述項。

  • buffer
    要寫入的資料。

  • count
    位元組數。

傳回值

如果成功的話, _write會傳回實際寫入的位元組數目。 如果磁碟上剩餘的實際空間小於此函數正在嘗試寫入磁碟,緩衝區的大小_write失敗,而不清除任何緩衝區的內容至磁碟。 傳回值為-1 表示發生錯誤。 如果傳遞無效的參數,這個函式叫用無效的參數處理常式中,如所述參數驗證。 如果執行,則允許繼續執行,則函數會傳回-1 和errno設定為三種值: EBADF,這表示的檔案描述項無效,或檔案未開放進行寫入。 ENOSPC的表示沒有足夠空間的裝置作業。 或EINVAL,所以buffer為空值的指標。

請參閱 _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 );
}
  

請參閱

參考

低階 I/O

fwrite

_open _wopen

_read