This IOCTL command returns a mode sense page from the device. The page is selected by specifying the page_code in the mode_sense_page structure.

See the appropriate device manual to determine the supported mode pages and content.

The data structure is
struct mode_sense_page
      char page_code;
      char data[MODESENSEPAGE];
An example of the SIOC_MODE_SENSE_PAGE command is
#include <sys/Atape.h>

struct mode_sense_page mode_page;

/* get Medium Changer mode */
mode_page.page_code = 0x20;
if (!ioctl (fd, SIOC_MODE_SENSE_PAGE, &mode_page))
    printf ("The SIOC_MODE_SENSE_PAGE ioctl succeeded\n");
    if ([2] == 0x02)
       printf ("The library is in Random mode.\n");
      if ([2] == 0x05)
        printf ("The library is in Automatic (Sequential) mode.\n");
    perror ("The SIOC_MODE_SENSE_PAGE ioctl failed");