共用方式為


_read

從檔案讀取資料。

int _read(
   int fd,
   void *buffer,
   unsigned int count 
);

參數

  • fd
    指的開啟的檔案的檔案描述項。

  • 緩衝區
    資料的儲存位置。

  • 計數
    最大位元組數。

傳回值

_讀取 傳回的讀取,這可能會更少的位元組數目比 計數 如果少於 計數位元組停留在該檔案,或如果檔案以文字模式開啟,每一個換行字元 return–line 餵送 (CR-LF) 對在此情況下會取代單一的換行字元。只有單一的換行字元,就會計算傳回的值。取代並不會影響檔案的指標。

如果函式會嘗試讀取在檔案結尾,則會傳回 0。如果fd是不正確,檔案未開啟進行讀取,或該檔案已被鎖定,不正確的參數處理常式會叫用,如所述參數驗證。如果要繼續,函式傳回 – 1,並設定允許執行errnoEBADF

如果緩衝區NULL,叫用無效的參數處理常式。如果執行,則允許繼續執行,則函數會傳回-1 和errno設定為 [ EINVAL

如需有關這個因應對策和其他的傳回碼的詳細資訊,請參閱 _doserrno、 errno、 _sys_errlist,以及 _sys_nerr

備註

_read函式會讀取的最大值為計數的位元組到緩衝區相關聯的檔案從fd。讀取的作業會從指定的檔案相關聯的檔案指標目前位置開始。讀取作業之後,檔案指標會指向下一個未讀取的字元。

如果檔案以文字模式開啟,則讀取時就會終止**_read**遇到 CTRL + Z 組合鍵字元會被視為一個檔案結尾標記。使用 _lseek 以取消選取的檔案結尾標記。

需求

常式

所需的標頭

_read

<io.h>

如需相容性資訊,請參閱相容性在簡介中。

文件庫

所有版本的 C 執行階段程式庫

範例

// crt_read.c
/* This program opens a file named crt_read.txt
 * and tries to read 60,000 bytes from
 * that file using _read. It then displays the
 * actual number of bytes read.
 */

#include <fcntl.h>      /* Needed only for _O_RDWR definition */
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>

char buffer[60000];

int main( void )
{
   int fh;
   unsigned int nbytes = 60000, bytesread;

   /* Open file for input: */
   if( _sopen_s( &fh, "crt_read.txt", _O_RDONLY, _SH_DENYNO, 0 ) )
   {
      perror( "open failed on input file" );
      exit( 1 );
   }

   /* Read in input: */
   if( ( bytesread = _read( fh, buffer, nbytes ) ) <= 0 )
      perror( "Problem reading file" );
   else
      printf( "Read %u bytes from file\n", bytesread );

   _close( fh );
}

輸入: crt_read.txt

Line one.
Line two.

Output

Read 19 bytes from file

請參閱

參考

低階 I/O

_creat _wcreat

fread

_open _wopen

_write