EN JA
BREAD(3)
BREAD(3) FreeBSD Library Functions Manual BREAD(3)

名称

bread, bwriteUFS ファイルシステムのブロックを読み書きする

ライブラリ

UFS File System Access Library (libufs, -lufs)

書式

#include < sys/param.h>
#include < sys/mount.h>
#include < ufs/ufs/ufsmount.h>
#include < ufs/ufs/dinode.h>
#include < ufs/ffs/fs.h>
#include < libufs.h>

ssize_t
bread( struct uufsd *disk, ufs2_daddr_t blockno, void *data, size_t size);

ssize_t
bwrite( struct uufsd *disk, ufs2_daddr_t blockno, const void *data, size_t size);

int
berase( struct uufsd *disk, ufs2_daddr_t blockno, ufs2_daddr_t size);

解説

bread(), bwrite() と berase() 関数は libufs(3) の利用者のためにブロック読み込み、ブロック書き込みとブロック削除の API を提供します。それらは、ユーザランド UFS ディスク構造体を操作し、構造体の現在の d_bsize 値を使用する、与えられたブロックアドレスで読み込みと書き込みを実行します。

戻り値

bread(), と bwrite() 関数は読み込みと書き込みの総量を返すか、短い読み込みを含んで、あらゆるエラーの場合は-1 を返します。

berase() 関数は、エラーで 0 以外を返します。

エラー

関数 bread() は、失敗して、ライブラリ関数 ufs_disk_write(3)pread(2) に明記されたエラーのいずれかが errno に設定されます。

関数 bwrite() は、失敗して、ライブラリ関数 pwrite(2) に明記されたエラーのいずれかが errno に設定されます。

関数 berase() は、失敗して、ライブラリ関数 ioctl(2) に明記されたエラーのいずれかが errno に設定されます。

さらに、すべての 3 つの関数は、書き込まれたデータ量総量が要求される総量と等しくない、か、またはデバイスエラーが起こった状況において libufs(3) のエラー手順に従います。

歴史

これらの関数は libufs(3) の一部として FreeBSD 5.0 ではじめて登場しました。

作者

Juli Mallett <jmallett@FreeBSD.org>
June 4, 2003 FreeBSD