EN JA
RMT(8)
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
指定された devicemode で指定された属性でオープンします。 device はフルパスで指定され、 modeopen(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