Scroll to navigation

PREAD(2) Linux Programmer's Manual PREAD(2)

名前

pread, pwrite - 指定したオフセットでファイルディスクリプタを読み書きする

書式

#define _XOPEN_SOURCE 500

#include <unistd.h>

ssize_t pread(int fd, void *buf, size_t count, off_t offset);

ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);

説明

pread() は、ファイルディスクリプタ fd の (ファイルの先頭からの) オフセット offset から最大 count バイトをバッファ buf へ読み込む。ファイル・オフセットは変化しない。

pwrite() は、バッファ buf から最大 count バイトをファイルディスクリプタ fd のオフセット offset に書き込む。ファイル・オフセットは変化しない。

fd で参照されるファイルはシーク (seek) 可能でなければならない。

返り値

成功した場合、読み書きを行ったバイト数が返される (ゼロは、 pwrite() の場合には何も書かれなかったことを意味し、 pread() の場合にはファイル の末尾に達したことを意味する)。 エラーの場合は -1 が返され、 errno がそのエラーを示すように設定される。

エラー

pread() では、 read(2) および lseek(2) で規定された全てのエラーが発生する可能性があり、 error にはエラーを示す値が設定される。 pwrite() では、 write(2) および lseek(2) で規定された全てのエラーが発生する可能性があり、 error にはエラーを示す値が設定される。

バージョン

システムコール pread() と pwrite() は Linux にバージョン 2.1.60 で追加された。 i386 のシステムコールのエントリは 2.1.69 で追加された。 (システムコールを持たない古いカーネルでの lseek(2) を使ったエミュレーションを含めると) C ライブラリにおけるサポートは glibc 2.1 で追加された。

準拠

POSIX.1-2001.

関連項目

lseek(2), read(2), write(2), feature_test_macros(7)

2008-12-03 Linux