名前


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) で指定された全てのエラーが発生し、 errno を設定する可能性がある。 pwrite() では、 write(2) および lseek(2) で指定された全てのエラーが発生し、 errno を設定する可能性がある。

バージョン


システム・コール pread() と pwrite() は Linux にバージョン 2.1.60 で加えられた。i386 のシステムコールのエントリは 2.1.69 で加えられた。 libc におけるサポートは(システムコールを持たない古いカーネルでの エミュレーションを含めて) glibc 2.1 で加えられた。

準拠


POSIX.1-2001.

関連項目


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

openSUSE Logo

コンテンツ