RMT(8) | FreeBSD System Manager's Manual | RMT(8) |
名称
rmt — リモートプログラムから磁気テープの操作を行なうためのプロトコルモジュール書式
rmt |
解説
rmt ユーティリティは、リモートダンプおよびリストアを行なうプログラムから、プロセス間通信を用いて磁気テープドライブを操作するために用いられます。通常は rcmd(3) からの呼び出しに応じて起動されます。rmt ユーティリティは、磁気テープの操作要求を受け付け、コマンドを実行します。その後、状態を返却します。全ての応答は、 ASCII 文字列および以下の 2 つの形式を組み合わせて行なわれます。コマンド実行が成功した場合は、以下の応答があります。
A
number\n
number は、10 進の ASCII 表現です。コマンド実行が失敗した場合には、以下の応答があります。
E
error-number\n
error-message\n
error-number は、 intro(2) に記述のあるエラー番号であり、 error-message は、 perror(3) によって出力されるエラー文字列です。プロトコルは、以下のコマンドを含み、コマンドと引数の間、もしくは引数間ではスペースは挿入されません。‘ \n
’の表示は、その部分で改行が要求されています:
- O device\n mode\n
- 指定された device を mode で指定された属性でオープンします。 device はフルパスで指定され、 mode は open(2) で用いられる 10 進の ASCII 表現です。すでにデバイスがオープンされていた場合、そのデバイスは一旦クローズされ、再びオープンされます。
- C device\n
- 現在オープンされているデバイスをクローズします。 device 指定は無視されます。
- L whence\n offset\n
- 指定された引数を用いて、 lseek(2) を実行します。返却値の意味は、 lseek(2) システムコールのそれと同じです。
- W count\n
- オープンされているデバイスに対し、データを書き込みます。 rmt ユーティリティは、要求元から count バイトのデータを読み込みます。予期しない EOF を読み込んだ場合、異常終了します。本コマンドの返却値は、 write(2) システムコールと同じです。
- R count\n
- オープンされてるデバイスから count バイトだけのデータを読み込みます。 count がデータバッファのサイズ (10kバイト) を超える場合、データバッファサイズに切り詰められます。 rmt ユーティリティは read(2) システムコールを実行し、読み込みが成功すると A count-read\n と返答します。そうでなければ、標準的な形式でエラーが返却されます。読み込みが成功すると、読み込まれたデータは要求元に送信されます。
- I operation\n count\n
- 指定された引数を用いて ioctl(2) の MTIOCOP リクエストを実行します。引数は、10 進の ASCII 表現に置き換えられ、 ioctl(2) で使用する構造体のメンバ mt_op および mt_count にそれぞれ格納されます。操作が成功した場合の返却値は、引数 count の値です。
- S
- ioctl(2) システムコールの MTIOCGET リクエストを用い、オープンされているデバイスの状態を返却します。操作が成功すると、ステータスバッファのサイズとともに ``ack'' が送信されます。それからステータスバッファが (バイナリ形式で) 送信されます。
上記以外のコマンドを rmt が受信した場合、 rmt は終了します。
診断
全ての返答は、上記の通りです。歴史
rmt ユーティリティは、 4.2BSD で登場しました。バグ
本コマンドをリモートファイルアクセスプロトコルとして使用しないで下さい。June 1, 1994 | FreeBSD |