VMS Help  —  MRD Library, mrd_move, Example
    /*
     *   Example to do slot to slot moves, using mrd_move(3mrd).  The
     *   reason for only doing slot to slot, is that it simplifies
     *   having to figure out element types.  The mrd_position(3mrd)
     *   example shows how part of this may be done.
     *
     *   The command usage is:
     *
     *      mrd_move source-slot destination-slot [ volume-tag ]
     */
    #ifndef   lint
    static   char   SccsId[] = "@(#)mrd_move.c   1.2 3/5/97" ;
    #endif

    #include <stdio.h>
    #include <stdlib.h>
    #include <mrd_common.h>
    #include <mrd_message.h>

    main(int argc, char *argv[])
    {
       int   status ;      /* Status from mrd_move(3mrd) */
       int   side = 1 ;      /* Only support side one */
       char   *robot ;      /* Name of the robot to use */
       char   *volume_tag = NULL ;   /* Volume tag to check */
       char   *source ;      /* Source slot */
       char   *destination ;      /* Destination slot */
       char   log_info[MRD_MAX_LOG_STRING+1] ;   /* error string */

       /*
        *   Three required arguments; robot name, source slot and
        *   destination slot.
        */
       if( argc < 4 ) {
          printf("usage: %s robot src dest [ volume-tag ]\n", argv[0]) ;
          exit(1) ;
       }

       robot       = argv[1] ;
       source      = argv[2] ;
       destination = argv[3] ;

       /*
        *   Volume tag is optional.
        */
       if( argc > 4 )
          volume_tag = argv[4] ;

       /*
        *   Do the operation.
        */
       status = mrd_move(robot, volume_tag, source, SLOT, destination,
             SLOT, side, log_info) ;

       if( status != MRD_STATUS_SUCCESS )
          printf("Move failed: %s: %s.\n", mrd_strstatus(status),
             log_info[0] ? log_info : "none") ;
       else
          printf("Moved media from Slot #%s to Slot #%s\n",
             source, destination) ;

       return 0 ;
    }
Close Help