SET_TAPE_POSITION

The SET_TAPE_POSITION IOCTL is used to position the tape in the current active partition to either a logical block id or logical filemark. The logical_id_type field in the IOCTL structure specifies either a logical block or logical filemark.

The data structure that is used with this IOCTL is
#define LOGICAL_ID_BLOCK_TYPE   0x00
#define LOGICAL_ID_FILE_TYPE    0x01

struct set_tape_position{
  uchar logical_id_type;    /* Block or file as defined above */
  ullong logical_id;        /* logical object or logical file to position to */
  char reserved[32];
  };
Examples of the SET_TAPE_POSITION IOCTL
#include <sys/Atape.h>

  struct set_tape_position setpos;

  /* position to logical block id 10 */
  setpos.logical_id_type =  LOGICAL_ID_BLOCK_TYPE 
  setpos.logical_id = 10;
  ioctl(fd, SET_TAPE_POSITION, &setpos);

  /* position to logical filemark 4 */
  setpos.logical_id_type =  LOGICAL_ID_FILE_TYPE
  setpos.logical_id = 4;
  ioctl(fd, SET_TAPE_POSITION, &setpos);