picox
0.1
|
複数のファイルシステムを透過的に扱うインターフェースを提供します [詳解]
![]() |
マクロ定義 | |
#define | xunionfs_close xvfs_close |
#define | xunionfs_closedir xvfs_closedir |
#define | xunionfs_copyfile2 xvfs_copyfile2 |
#define | xunionfs_flush xvfs_flush |
#define | xunionfs_getc xvfs_getc |
#define | xunionfs_gets xvfs_gets |
#define | xunionfs_init_stream xvfs_init_stream |
#define | xunionfs_printf xvfs_printf |
#define | xunionfs_putc xvfs_putc |
#define | xunionfs_puts xvfs_puts |
#define | xunionfs_read xvfs_read |
#define | xunionfs_readdir xvfs_readdir |
#define | xunionfs_seek xvfs_seek |
#define | xunionfs_tell xvfs_tell |
#define | xunionfs_vprintf xvfs_vprintf |
#define | xunionfs_write xvfs_write |
関数 | |
XError | xunionfs_chdir (const char *path) |
XError | xunionfs_copyfile (const char *src, const char *dst) |
XError | xunionfs_copytree (const char *src, const char *dst) |
void | xunionfs_deinit () |
xunionfsの終了処理を行います。 | |
XError | xunionfs_exists (const char *path, bool *exists) |
XError | xunionfs_getcwd (char *buf, size_t size) |
void | xunionfs_init () |
xunionfsの初期化を行います [詳解] | |
XError | xunionfs_is_directory (const char *path, bool *isdir) |
XError | xunionfs_is_regular (const char *path, bool *isreg) |
XError | xunionfs_makedirs (const char *path, bool exist_ok) |
XError | xunionfs_mkdir (const char *path) |
XError | xunionfs_mount (XVirtualFs *vfs, const char *path, const char *realpath) |
仮想ファイルシステムをディレクトリツリーに接続します [詳解] | |
XError | xunionfs_open (const char *path, XOpenMode mode, XFile **o_fp) |
XError | xunionfs_opendir (const char *path, XDir **o_dir) |
XError | xunionfs_remove (const char *path) |
XError | xunionfs_rename (const char *oldpath, const char *newpath) |
XError | xunionfs_rmtree (const char *path) |
XError | xunionfs_stat (const char *path, XStat *statbuf) |
XError | xunionfs_umount (const char *path) |
ファイルシステムのマウントを解除(アンマウント)します [詳解] | |
XError | xunionfs_utime (const char *path, XTime time) |
XError | xunionfs_walktree (const char *path, XFsTreeWalker walker, void *userptr) |
複数のファイルシステムを透過的に扱うインターフェースを提供します
Unix系のシステムが"/"以下に異なるファイルシステムを次々にマウントして、一つ のディレクトリツリーを構成するのと同じアプローチです。 これにより、ファイルシステムをまたいだ操作を簡単に行うことができます。
ただし、FatFs等の組込み向けファイルシステムドライバを直接使用することに比べ て、抽象化によるオーバーヘッドがそれなりに存在することは意識しておくべきです 。アプリケーションにとって、そのオーバーヘッドが無視できる程度なのかどうかを 見極めて使用しましょう。
void xunionfs_init | ( | ) |
xunionfsの初期化を行います
全てのxunionfs_xxx()の呼び出し前にこの関数を呼び出してください。 xunionfs_deinit()による終了処理を行わずに、再度この関数を呼び出すことは禁止です。
XError xunionfs_mount | ( | XVirtualFs * | vfs, |
const char * | path, | ||
const char * | realpath | ||
) |
仮想ファイルシステムをディレクトリツリーに接続します
vfs | 初期化済みの有効なXVirtualFsオブジェクト |
path | マウント先パス |
realpath | vfs基準のマウント元パス |
"/"以外のパスはすでにxunionfs内に存在しているディレクトリである必要があります。 そのため、必然的にはじめのマウントパスは"/"です。
マウント先にもともと存在するエントリは不可視となるため、通常は空のディレクト リに対してマウントを行います。
XError xunionfs_umount | ( | const char * | path | ) |
ファイルシステムのマウントを解除(アンマウント)します