[comp.sys.sun] MTIOCGET status call with RMT

evenson@cis.udel.edu (Mark Evenson) (10/08/90)

I'm trying to use a library of routines that uses the RMT (8C) package to
remotely use a tape device.  The library is credited with "rmt --- remote
tape emulator subroutines Originally written by Jeff Lee, modified some by
Arnold Robbins, taken from sunio (May-89)".  It uses a rexec call to a
remote machine (trusted via a .rhosts entry) to use "rsh" to set up a set
of pipes in communication with a RMT (8C) process.  Then, further
communication is passed by strings of ASCII characters out, and reading
text back in through the pipe.

Everything works fairly well, except that if I try to get a status report
similar to the one returned with a MTIOCGET ioctl call, the executing copy
of RMT on the remote machine disappears, and the next attempt to use the
pipe fails with a SIGPIPE error.  The exact form of this request is to
send the ASCII string "S\n" through the pipe--see RMT (8C).  The status
call seems to work fine, although I can't decipher the status bytes the
Xylogics kicks back to me.  It is just that this always causes the "rmt"
on the remote machine to disappear.  I don't have root privilege on this
machine (one of our NFS file servers), and even if I did, I wouldn't know
exactly how to trace the demise of the "rmt" process.

Is it possible that my version of RMT (8C) is buggy?  I'm under SunOS 4.1,
using a Xylogics 472 1/2" tape drive.  Can anyone relate experience
getting together some code that would let one use a tape drive remotely,
yet interface with existing C-code?

[Please Note: This is my first experience debugging a pipe-related
problem, and its not especially pleasant using someone else's code.  In a
very real sense, I only know pipe "theory", and no real praxis.  I would
be happy to supply the code I've been trying to interface and my exact
copy of the rmt library, but I figure ought just ask the generalized
question first.]

		Replies via email welcome,

			Mark
			evenson@cis.udel.edu