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