Schily's LIBRARY FUNCTIONS                          RMTSTATUS(3L)


     rmtstatus,  rmtxstatus,  _mtg2rmtg,  _rmtg2mtg   -   request
     MTIOCGET on a connection to a remote tape server


     cc [ flag ... ] file ...  -lrmt -lsocket -lnsl [ library ...

     #include <schily/librmt.h>
     #include <schily/rmtio.h>

     int rmtstatus(int remfd, struct mtget *mtp);

     int rmtxstatus(int remfd, struct rmtget *mtp);

     void _rmtg2mtg(struct mtget *mtp, struct rmtget *rmtp);

     int _mtg2rmtg(struct rmtget *rmtp, struct mtget *mtp);


     rmtstatus() and rmtxstatus()
          perform a MTIOCGET request to the remote server,  remfd
          is a file descriptor previously obtained from a call to
          rmtgetconn(), struct mtget is the local  magnetic  tape
          status  structure,  struct  rmtget is the enhanced mag-
          netic tape status structure from  librmt.   rmtstatus()
          and  rmtxstatus()  will  fail  if there was no previous
          successful   rmtopen()   before.     rmtstatus()    and
          rmtxstatus()  take care of using RMT protocol VERSION 1
          if the remote side implements support for protocol ver-
          sion  1.   The  function  rmtstatus()  is  outdated and
          should be avoided as the results in struct  mtget  will
          be the least common denominator of the local and remote
          variants of the structure.  Use  rmtxstatus()  instead.
          The member mt_xflags in struct rmtget contains a bitmap
          that indicates which members of the  structure  contain
          valid values.  See mtio(7) for more information.

          converts a struct rmtget into a struct mtget.

          converts a struct mtget into a struct rmtget  and  sets
          the member mt_xflags in struct rmtget to contain a bit-
          map that indicates which members of  struct  mtget  are
          present in the local implementation.


     rmtstatus() and rmtxstatus()
          return a value >= 0 if the  remote  ioctl(f,  MTIOCGET,
          struct mtget *) succeeds.

Joerg Schilling       Last change: 08/10/12                     1

Schily's LIBRARY FUNCTIONS                          RMTSTATUS(3L)


     rmtstatus() and rmtxstatus() return  -1  on  error  and  set
     errno to the errno value retrieved from the remote server.

          returns -1 if no value  from  the  local  struct  mtget
          could be converted to the abstract struct rmtget.


     int  remfd;
     char *remfn;
     char host[256];
     struct rmtget rmtg;

     if ((remfn = rmtfilename(filename)) != NULL) {
          rmthostname(host, sizeof (host), filename);

          if ((remfd = rmtgetconn(host, iosize, 0)) < 0)
               comerrno(EX_BAD, "Cannot get connection to '%s'.\n",
                    /* errno not valid !! */      host);

     if (rmtopen(remfd, remfn, mode) < 0)
          comerr("Cannot open '%s'.\n", remfn);

     if (rmtxstatus(remfd, &rmtg) < 0)
          comerr("Cannot retrieve magnetic tape status fom '%s'.\n", remfn);




     rmt(1), rsh(1), ssh(1),  rcmd(3),  rmtinit(3),  rmtdebug(3),
     rmthostname(3),  rmtfilename(3),  rmtgetconn(3), rmtopen(3),
     rmtioctl(3),    rmtclose(3),    rmtread(3),     rmtwrite(3),
     rmtseek(3),   rmtxstatus(3),   rmtstatus(3),   _mtg2rmtg(3),
     _rmtg2mtg(3), errmsgno(3), mtio(7)




     If local and remote errno values do not match, programs  may
     get confused.


     Joerg Schilling
     Seestr. 110
     D-13353 Berlin

Joerg Schilling       Last change: 08/10/12                     2

Schily's LIBRARY FUNCTIONS                          RMTSTATUS(3L)

     Mail bugs and suggestions to: or

Joerg Schilling       Last change: 08/10/12                     3

Man(1) output converted with man2html

FhG Schily's Home VED powered