magtape protocol module
is a program used by the remote dump and
restore programs through an interprocess communication connection.
Traditionally it is used for manipulating a magnetic tape drive but it may be
used for regular file access as well. rmt
normally started up with an
The options are as follows:
- Confine file access to
directory. Forward slashes in filenames
are disallowed and symlinks are not followed.
- Read-only mode, suitable for use with
- File write mode, suitable for use with
rdump(8) for dumping to
regular files. Creates missing files and refuses to open existing ones.
The file permission bits are set to readonly.
program accepts requests specific to the
manipulation of magnetic tapes, performs the commands, then responds with a
status indication. All responses are in ASCII and in one of two forms.
Successful commands have responses of:
is an ASCII representation of a decimal
number. Unsuccessful commands are responded to with:
is one of the possible error
numbers described in intro(2)
is the corresponding error
string as printed from a call to
. The protocol is
comprised of the following commands, which are sent as indicated - no spaces
are supplied between the command and its arguments, or between its arguments,
’ indicates that a newline should
- Open the specified device
using the indicated mode.
device is a full pathname and
mode is an ASCII representation of a
decimal number suitable for passing to
open(2). If a device had
already been opened, it is closed before a new open is performed.
- Close the currently open device. The
device specified is ignored.
- Perform an
lseek(2) operation using the
specified parameters. The response value is that returned from the
- Write data onto the open device.
count bytes from the connection, aborting
if a premature end-of-file is encountered. The response value is that
returned from the write(2)
- Read count bytes of data
from the open device. If count exceeds
the size of the data buffer (10 kilobytes), it is truncated to the data
buffer size. rmt then performs the requested
read(2) and responds with
if the read was successful; otherwise an error in the standard format is
returned. If the read was successful, the data read is then sent.
- Perform an
ioctl(2) command using the
specified parameters. The parameters are interpreted as the ASCII
representations of the decimal values to place in the
mt_count fields of the structure used in
the ioctl(2) call. The return
value is the count parameter when the
operation is successful.
- Return the status of the open device, as obtained with a
ioctl(2) call. If the
operation was successful, an “ack” is sent with the size of
the status buffer, then the status buffer is sent (in binary).
Any other command causes rmt
All responses are of the form described above.
command appeared in
People tempted to use this for a remote file access protocol are