Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mount(2) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

unmount(2)

mount(8)

MOUNT(2)  —  UNIX Programmer’s Manual

名称

mount − ファイルシステムをマウントする

形式

#include <sys/mount.h>

mount(type, dir, flags, data)
int type;
char ∗dir;
int flags;
caddr_t data;

解説

mount は、ディレクトリにファイルシステムを付加します。処理 が正常に終了した後では、ディレクトリ dir への 参照は、新たにマウントされたファイルシステム上のルート ディレクトリを参照します。 ディレクトリ dir は、パス名を含みナルで終了する文字列を示すポインタです。 これは、既に存在していなければならなく、 ディレクトリでなければなりません。 その古い内容は、ファイルシステム がマウントされている間はアクセスすることはできません。 引数 flags は、ファイルシステムに書き込みできるかどうかを 決定し、set-uid での実行が許されます。物理的に書き込み 保護されている場合や、磁気テープのファイルシステムは 読み出し専用でマウントしなければなりません。そうで なければ、明示的な書き込みが行われたかどうかに かかわらず、アクセス時刻が更新された時に エラーが発生します。 type は、ファイルシステムのタイプを示します。 mount.h で定義 されているタイプの 1つでなければなりません。 data は、マウント する特殊なタイプの引数を含む構造体を示すポインタです。以下 に、サポートされたファイルシステムのタイプと、その 各々の特殊なタイプの引数を示します。

MOUNT_UFS
struct ufs_args {
char∗fspec;/∗ マウントする特殊ファイルのブロック ∗/
};

MOUNT_NFS
#include
<nfs/nfs.h>
#include<netinet/in.h>
struct nfs_args {
struct sockaddr_in ∗addr; /∗ ファイルサーバアドレス ∗/
fhandle_t∗fh;/∗ マウントすべきファイルハンドル ∗/
intflags;/∗ フラグ ∗/
intwsize;/∗ 書き込むバイトサイズ ∗/
intrsize;/∗ 読み出すバイトサイズ ∗/
inttime0;/∗ 0.1秒単位でのイニシャルタイムアウト ∗/
intretrans;/∗ リトライ送信回数∗/
};

リターン値

mount は、正常に終了した場合には 0 を返し、 special がアクセス不可能または適切なファイルではない場合、または name が存在していない場合、 special が既にマウントされている場合、 name が使用されている場合、マウントできる最大数のファイルシステム が既にマウントされている場合には、−1 を返します。

エラー

以下に示されている項目のうち 1 つが発生すると、 mount は失敗します。

[EPERM] 呼び出しユーザがスーパーユーザではない。

[ENOENT] special が存在していない。

[ENOTBLK] special がブロック型のデバイスではない。

[ENXIO] special のメジャーデバイス番号が範囲外である(これは、対応する ハードウェアのためのデバイスドライバが存在していないことを示す)。

[EPERM] パス名に上位ビットのセットされたキャラクタが含まれ ている。NEWS-OS では起きない。

[ENOTDIR] name のパスプレフィックスの構成要素がディレクトリではない。

[EBUSY] dir がディレクトリではない、または別のプロセスが現在それへの参照を保持している。

[EBUSY] ファイルシステムのスーパーブロックが、誤ったマジック番号を 持っていた、または範囲外のブロックサイズであった。

[EBUSY] ファイルシステムのシリンダグループ情報を読み取るために 必要なメモリが使用可能ではない

[EIO] スーパーブロックまたはシリンダグループ情報を読み取っている間に 入出力エラーが発生した。

[ENOTDIR] special または name の パスプレフィックスがディレクトリではない。

[EPERM] special または name の パス名に上位ビットのセットされたキャラクタが含まれている。NEWS-OS では 起きない。

[ENAMETOOLONG]
special または name の パス名が長すぎる。

[ENOENT] special または name が存在しない。

[EACCES] special または name のパスプレフィックスの 構成要素に対して検索する許可は許されない。

[EFAULT] special または name が、そのプロセスの割り当て アドレススペースの外を指している。

[ELOOP] special または name のパス名の処理で遭遇した シンボリックリンクの数が多すぎる。

[EIO] ファイルシステムからの読み出し、ファイルシステムへの書き込みの間に 入出力エラーが発生した。

関連事項

unmount(2), mount(8)

バグ

エラーコードは整列されていない状態です。多くのエラーが、ひとつの値として 呼び出しユーザに見えます。

NEWS-OSRelease 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026