標準
標準/拡張機能 |
C/C++ |
依存項目 |
z/OS®UNIX |
両方 |
OS/390 V2R9 |
形式
#define _OPEN_SYS
#include <sys/stat.h>
#include <sys/mntent.h>
int __mount(struct mnte2 *mnte, char *sysname);
機能説明
ファイル・システムを階層ファイル・システムに追加します。階層ファイル・システムの複数の場所で、同じ
ファイル・システムをマウントすることはできません。
ファイル・システムをマウントするには、呼び出し元が
許可プログラムであるか、あるいは該当する権限を持つユーザー用に
実行されているプログラムでなければなりません。
エレメントの説明
シスプレックス内の HFS ファイルをマウントしたり、そのマウントを変更する場合は、アプリケーションでは mnte の値を次のように設定する必要があります。
- mnt2h_cbid
- mnte2 制御ブロック ID。「MNT2」に初期設定する。
- mnt2h_cblen
- mnte2 のサイズ。構造体 mnte2 のサイズに初期設定する。
- mh2_cursor
- 内部カーソルが格納される。この値は、はじめから 0 に設定され、その後の呼び出しでも変更されてはならない。
- mnth_devno
- 必要に応じて、装置番号が格納される。
- mh_bodylen
- w_mntent2 の mnte2 サイズ。w_mntent2 本体のサイズに初期設定されなければならない。
- rsvd
- このフィールドはすべてゼロに設定されなければならない。
- mnt2_fstype
- ファイル・システムのタイプ。
- mnt2_mode
- ファイル・システムのマウント・モード。マウント・モードと追加のマウント・オプションを指定するフラグ・フィールド。
- mntentfsaunmount
- 1 の場合、ファイル・システムがマウントされた後、
システムがシスプレックスを離れるときにファイル・システムはアンマウントされる。0 の場合、mntentfsnoautomove の設定が使用される。下記の mntentfsnoautomove を参照してください。__mount() を呼び出す前に、このビットを変更し、要求ビット mntentnewauto を 1 に設定することにより、ファイルのマウント後に、このオプションを変更できる。0 に変更する場合、自動移動または移動なしを指示するために mntentfsnoautomove も設定
してください。
- mntentfsclient
- 0 の場合、このファイル・システムはシスプレックス・クライアントである。1 の場合、このファイル・システムはシスプレックス・クライアントではない。
注: mntentfsclient は入力パラメーターではないことに注意してください。
- mntentfsnoautomove
- 0 の場合は、ファイル・システムのマウント後に、自動的に移動できる。1 の場合は、ファイル・システムのマウント後に、自動的に移動されない。__mount() を呼び出す前に、このビットを変更し、要求ビット mnte2ntnewauto を 1 に設定することにより、ファイルのマウント後に (mntentfsaunmount がゼロの場合)、もう一方のモードに変更できる。
注: このビットの設定は、mntentfsaunmount が 0 の場合にだけ適用されます。
- mntentfsmodenosec
- 1 の場合、このファイル・システムはセキュリティー検査を強制しない。0 の場合、このファイル・システムはセキュリティー検査を強制する。
- mntentfsmodeexport
- 0 の場合、このファイル・システムは DFS によってエクスポートされていない。1 の場合、このファイル・システムは DFS によってエクスポートされた。
- mntentfsmoderdonly
- 0 の場合、このファイル・システムは読み取り/書き込みファイル・システムとしてマウントされる。1 の場合、このファイル・システムは読み取り専用ファイル・システムとしてマウントされる。
- mntentfsmodenosuid
- 1 の場合、このファイル・システムに常駐するプログラムに対する SETUID および SETGID モード・フラグが無視される。0 の場合、このファイル・システムに常駐するプログラムに対する SETUID および SETGID モード・フラグが強制される。この情報は関数として戻されるが、変更してはならない。
- mnt2_dev
- このファイル・システム内のすべてのファイルに対して stat が戻されるデバイスの番号。__mount() への入力時には設定しない。
- mnt2_parentdev
- 親ファイル・システムの st_dev。__mount() への入力時には設定しない。
- mnt2_rootino
- マウント・ポイントの ino。__mount() への入力時には設定しない。
- mnt2_status
- ファイル・システムの状況。このフィールドは入力パラメーターではない。要求が正常に処理されたあと、出力時にテストできる。
- mnt2_ddname
- マウント時に指定された DD 名。1 ~ 8 文字が許可されている。
- mnt2_fstname
- FILESYS ステートメントで指定されたファイル・システム・タイプの名前。
マウントを実行するファイル・システムの名前。この 8 文字の名前は、このファイル・システム用
の BPXPRMxx parmlib メンバーに
ある FILESYSTYPE ステートメントの TYPE オペランドと
一致しなければならない。1 ~ 8 文字が許可されている。
- mnt2_fsname
- マウントされるファイル・システムの名前。これは、システム内で固有の名前にする必要がある。階層ファイル・システム (HFS) データ・セットの場合、この名前は、すべて大文字で指定する 1 ~ 44 文字の MVS™ データ・セット名である。
この名前は NULL 文字で終了する。
- mnt2_pathlen
- マウント・ポイント・パスの長さ。
- mnt2_mountpoint
- ファイル・システムがマウントされるディレクトリーの名前。1 ~ 1023 文字が許可されている。ファイル・システムがマウントされているマウント・ポイント・ディレクトリーも参照する。
- mnt2_parmoffset
- mnt2_fstype からのマウント・パラメーター mnt2_parmreturn のオフセット。マウントを実行する物理ファイル・システムに渡されるパラメーターも参照する。このパラメーターが不要な場合もある。パラメーターの形式と内容は、物理ファイル・システムで判別される。階層ファイル・システム (HFS) のデータ・セットには、パラメーターは必要ない。
- mnt2_parmlen
- サイズが mnt2_parmreturn であるマウント・パラメーターの長さ。パラメーター引数の長さを参照することもある。最大長は 1024 文字。階層ファイル・システムのデータ・セットには、パラメーターは必要ない。
- mnt2_sysname
- ターゲット・システムの名前。1 ~ 8 文字が許可されている。ターゲット・システムの変更は、必ず sysname で指定する。ほかの呼び出しの場合は、必ず、sysname に NULL を指定する。NULL を指定しないと、ターゲット名が変更される。sysname を指定するとき、マウント関数を呼び出す場合は mnte2ntchange フラグをオフに設定し、変更マウント関数を呼び出す場合は mnte2ntchange フラグをオンに設定する。マウント時にシステムを指定すると、ファイルがそのシステムにマウントされ、マウント変更時にシステムを指定すると、現在そのシステムにマウントされている位置からファイル・システムが移動される。
- mnt2_qsystem
- 静止システムの名前。1 ~ 8 文字が許可されている。ただし、ブランクが埋め込まれ、NULL 終了文字は含まれない。このフィールドは、getmntent() からの出力専用フィールドである。
- mnt2_fromsys
- ファイル・システムが移動されたシステムの名前。
- mnt2_flags
- 要求フラグを格納するフィールド。既存のマウント済みファイル・システムの変更を指定するフラグ・フィールド。
- mnte2ntnewauto
- このフラグは、mnte2ntfsnoautomove に設定された値に応じて automove 状態に影響するモードを変更させる。 mnte2ntfsnoautomove の説明を参照。
- mnte2ntchange
- この w_mntent 内の要求は、既存状況またはモードの変更である。すべての変更マウント要求において、このフラグはオンに設定されなければならない。w_mntent 構造体は、mnte2ntfsname フィールドまたは mnte2ntmountpoint フィールド、および mnte2ndpathlen フィールドを変更する必要がある。ディレクトリーのマウントを要求する場合は、このフラグをオフに設定しなければならない。
- mnt2_status2
- ファイル・システムの状況の拡張。
- mnt2_success
- このフィールドには、ファイル・システムのコレクションの移動時に、正常に移動されたファイル・システムの数が戻される。ほかの目的で使用されることはない。
- parm_point
- このフィールドには、ファイル・システムのマウント時に使用されるマウント・ポイント・パラメーターが格納される。mnte2 構造体の個別のフィールドであり、w_mnte2 本体に続けて割り振られる。mnt2_parmoffset フィールドには、parm_point の開始までのオフセットが格納される。
- mnt2_syslistlength
- システム・リストの長さ。
- mnt2_syslistoffset
- システム・リストのオフセット。
- mnt2_aggnamelength
- mnt2_aggname の中の集合名の長さ。この長さは、ヌル終了文字を含まず、mnt2_aggnameoffset がゼロ以外の値を持つ場合にのみ有効。
- mnt2_aggnameoffset
- mnt2_aggname の w_mntent からのオフセット。この値が 0 の場合、集合名は戻されません。
mnte3 構造体を mnte2 構造体の
代わりに使用することもできます。以下の mnte3 フィールドは、
対応する mnte2 のフィールドと等価です。ただし、mnte3 構造体の使用を指定するために、
ヘッダー・フィールドに適切な変更が加えられています。
- mnt3h_cbid
- mnte3 制御ブロック ID。 「MNT3」に初期設定する。
- mnt3h_cblen
- mnte3 サイズ。構造体 mnte3 のサイズに初期設定する。
- mh3_cursor
- mh3_devno
- mh_bodylen
- w_mntent3 の mnte3 サイズ。w_mntent3 本体のサイズに
初期設定されなければならない。
- rsvd
- mnt3_fstype
- mnt3_mode
- mnt3_dev
- mnt3_parentdev
- mnt3_rootino
- mnt3_status
- mnt3_ddname
- mnt3_fstname
- mnt3_fsname
- mnt3_pathlen
- mnt3_mountpoint
- mnt3_parmoffset
- mnt3_parmlen
- mnt3_sysname
- mnt3_qsysname
- mnt3_fromsys
- mnt3_flags
- mnt3_status2
- mnt3_success
戻り値
正常に実行された場合、__mount() は 0 を戻します。
__mount() が非同期的に進行している場合は、1 が戻されます。
正常に実行されなかった場合、__mount() は -1 を戻して、errno を次のいずれかの
値に設定します。
- エラー・コード
- 説明
- EBUSY
- 指定されたファイル・システムが使用できません。
- EINVAL
- パラメーターが間違って指定されました。filesystype と mtm が正しいかを確認してください。このエラーに考えられるほかの理由として、マウント・ポイントがファイル・システムのルートであること、あるいはファイル・システムが既にマウント済みであることが
あります。
- EIO
- 入出力エラーが発生しました。
- ELOOP
- ループがシンボリック・リンクに存在しています。pathname の解決
で POSIX_SYMLOOP (limits.h ヘッダー・ファイルで
定義) を超えるシンボリック・リンクが検出されると、このエラーが
発行されます。
- ENOENT
- マウント・ポイントが存在しません。
- ENOMEM
- このファイル・システムに必要な情報を保管するのに
使用できる十分なストレージがありません。
- ENOTDIR
- マウント・ポイントがディレクトリーではありません。
- EPERM
- マウントを発行するには権限が必要です。