BREAD(3) | FreeBSD Library Functions Manual | BREAD(3) |
名称
bread, bwrite — UFS ファイルシステムのブロックを読み書きするライブラリ
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) のエラー手順に従います。
作者
<jmallett@FreeBSD.org>June 4, 2003 | FreeBSD |