UFS_DISK_CLOSE(3) | FreeBSD Library Functions Manual | UFS_DISK_CLOSE(3) |
名称
ufs_disk_close, ufs_disk_fillout, ufs_disk_fillout_blank, ufs_disk_write — ユーザランド 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>
int
ufs_disk_close( struct uufsd *disk);
int
ufs_disk_fillout( struct uufsd *disk, const char *name);
int
ufs_disk_fillout_blank( struct uufsd *disk, const char *name);
int
ufs_disk_write( struct uufsd *disk);
解説
ufs_disk_close() 関数は、ディスクをクローズして、それに関連する内部のメモリを解放します。それは disk 構造体を解放しません。ufs_disk_fillout() と ufs_disk_fillout_blank() 関数は、 name によって指定されたディスクをオープンして、 disk によって指された構造体に入れられます。ディスクは読み込み専用でオープンされます。指定される name は、マウントポイント、デバイス名またはファイルイメージのいずれかです。 ufs_disk_fillout() 関数は、有効なスーパブロックがあると仮定します、そして、そうでなければ失敗しますが、 ufs_disk_fillout_blank() 関数はそのような仮定を行いません。
ufs_disk_write() 関数は、現在書き込み可能でないなら、書き込み可能としてディスクを再オープンすることを試みます。
エラー
関数 ufs_disk_close() には、失敗する部分はありません。関数 ufs_disk_fillout() は ufs_disk_fillout_blank() が失敗するかもしれない理由のいずれか、同様に sbread(3) が失敗するかもしれない理由のいずれかで失敗するかもしれません。
ufs_disk_fillout_blank() は失敗すれば、ライブラリ関数 open(2), strdup(3) で明記されたエラーのいずれかが errno に設定されます。さらに、オープンするデバイスが見つけられない状況で、 libufs(3) エラー手順に従ます。
関数 ufs_disk_write() は、失敗すれば、ライブラリ関数 open(2) と stat(2) で明記されたエラーのいずれかが errno に設定されます。すなわち、問題のディスクに書き込みできないなら失敗します。
作者
<jmallett@FreeBSD.org>June 4, 2003 | FreeBSD |