_read
ファイルからデータを読み取ります。
int _read(
int fd,
void *buffer,
unsigned int count
);
パラメーター
fd
開いているファイルを参照するファイル記述子。buffer
データの格納場所。count
最大バイト数。
戻り値
_読み取り を読み取る各 CR-LF (キャリッジ return–line 指定) のペアが単一のライン フィード文字で取り替えられればファイルに残された バイト数 より少ない数がある場合、またはファイルがテキスト モードで開いている場合、カウント 未満である、バイト数を返します。 単一のライン フィードの文字を戻り値としてカウントされます。 置換は、ファイル ポインターには影響しません。
関数は、ファイルの終端を読み取ろうとすると 0 を返します。 fd が無効な場合、ファイルは読み取り用に開いていないと、ファイルは パラメーターの検証"に説明されているように、無効なパラメーター ハンドラーが呼び出されます。ロックされます。 実行の継続が許可された場合、関数の戻り値–1 は EBADFに errno を設定します。
バッファーがNULLの場合、無効なパラメーター ハンドラーが呼び出されます。 実行の継続 EINVALへの関数の戻り値は -1 と errno 設定されます。
これにより、他のリターン コードに関する詳細については、「" _doserrno、errno、_sys_errlist、および_sys_nerr "」を参照してください。
解説
_read 関数は fdに関連付けられたファイルの バッファー に バイト数 の最大値を示します。 読み取り操作時間が指定されたファイルに関連付けられているファイル ポインターの現在の位置から開始されます。 読み取り操作の後に、ファイル ポインターは次の未読の文字を指します。
ファイルがテキスト モードで開いている場合、_read が EOF として扱われる Ctrl キーの文字を検出すると、終了します。 EOF をクリアする _lseek を使用します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_read |
<io.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
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.
出力
Read 19 bytes from file