|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
ファイル・ポインタを変更せずに,ファイル内の,指定された位置からバイトを読み込みます。
形式
#include <unistd.h>
ssize_t pread (int file_desc, void *buffer, size_t nbytes, off_t
offset);
引数
file_desc現在読み込み用にオープンされているファイルを指すファイル記述子。
buffer入力データが格納される,連続領域のアドレス。
nbytes読み込み操作を行う最大バイト数。
offsetファイル内の読み込み位置を指定するオフセット。
説明
pread関数は,ファイル・ポインタを変更せずにファイル内の指定された位置から読み込みを行うことを除き,
readと同じ動作を行います。
preadの最初の 3 つの引数は,
readと同じです。ファイル内の読み込み位置を指定するために, 4 番目の引数 offset が追加されています。シーク不能のファイルに対して
preadを行おうとすると,エラーとなります。
戻り値
n
|
読み込むバイト数。
|
-1
|
失敗すると,ファイル・ポインタは変更されず,
pread
は以下のいずれかの値を
errno に設定します。
- EINVAL -- offset 引数が不正です。値が負です。
- EOVERFLOW -- このファイルは通常のファイルで,ファイルに対応する最大オフセットの位置またはそれを越えた位置で,読み込みや書き込みが行われようとしました。
- ENXIO -- デバイスの能力外の要求でした。
- ESPIPE -- ファイル記述子が,パイプまたは FIFO に対応しています。
|
|