void endfsent(void);
struct fstab *getfsent(void);
struct fstab *getfsfile(const char *mount_point);
struct fstab *getfsspec(const char *special_file);
struct fstab { char *fs_spec; /* block device name */ char *fs_file; /* mount point */ char *fs_vfstype; /* filesystem type */ char *fs_mntops; /* mount options */ const char *fs_type; /* rw/rq/ro/sw/xx option */ int fs_freq; /* dump frequency, in days */ int fs_passno; /* pass number on parallel dump */ };
*BSD システムの場合、 fs_type フィールドには、5 つの文字列 "rw", "rq", "ro", "sw", "xx" のいずれかが入る (それぞれ read-write, quota 付き read-write, read-only, swap, ignore)。
関数 setfsent() は呼び出されると fstab ファイルをオープンし、 最初の行に移動する。
関数 getfsent() は fstab ファイルから次の行をパースする (必要な場合はファイルをオープンする)。
関数 endfsent() は呼び出されると fstab ファイルをクローズする。
関数 getfsspec() は fstab ファイルを先頭から検索し、 fs_spec フィールドが special_file 引数にマッチするエントリが見つかったら、その最初のものを返す。
関数 getfsfile() は fstab ファイルを先頭から検索し、 fs_file フィールドが mount_point 引数にマッチするエントリが見つかったら、その最初のものを返す。
Linux ではブロックスペシャルデバイスを複数の場所にマウントでき、 また複数のデバイスが同じマウントポイントを共有できる (この場合はそのマウントポイントに最後にマウントされたデバイスが意味を持つ) が、 getfsfile() と getfsspec() はマッチした最初のエントリしか返さないので、 これらの 2 つの関数は Linux での利用には適していない。