[comp.sys.sun] using ioctl in C to call tape drive

yun@bu-ast.bu.edu (Joao Lin Yun) (06/05/91)

We have been having troubles getting this posted.  If it gets through,
please reply via e-mail to Joao (yun@bu-ast.bu.edu) as he is not a regular
news reader.  Thanks.  David.
-----

I've been trying to talk to a Xylogics tape drive through a C program including
the command "ioctl". For a reason unknown to me this does not work. I keep
getting the error message: "Inappropriate ioctl for device"
Here is the relevant piece of code that I'm using:

   struct mtop op;

         *fd = open("/dev/nrmt0", O_RDWR);

      op.mt_op = MTREW;
      *status = ioctl(*fd, MTIOCTOP, &op);
      if (*status < 0) {
         perror("mtio:");
         return;

The "open" command is successful (it returns a value of fd=8) but after that
any magtape opeartion that I try to do using "ioctl" gives an error:

	"mtio: Inappropriate ioctl for device"


The poeople from whom I got the code guarantee me that the code is working fine
with their SCSI tape drive (with /dev/nrst8 instead of /dev/nrmt0). After 
trying everything that seemed likely to be the problem, I have no idea of why 
it doesn't work. Can someone help finding the problem and a its solution?
Thanks!


--
David Bradford                          Internet: bradford@bu-ast.bu.edu
Systems Manager                         BITnet:   bradford@buasta
Astronomy Department                    SPAN:     buasta::bradford
Boston University                       Phone:    (617)353-4884