MTIO.4
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:3k
源码类别:

操作系统开发

开发平台:

C/C++

  1. MTIO(4)                   Minix Programmer's Manual                    MTIO(4)
  2. NAME
  3.      mtio - magnetic tape commands
  4. SYNOPSIS
  5.      #include <sys/types.h>
  6.      #include <sys/mtio.h>
  7.      #include <sys/ioctl.h>
  8. DESCRIPTION
  9.      The magnetic tape devices described in sd(4)  may  be  sent  commands  or
  10.      queried for their status using the following ioctl calls:
  11.           ioctl(fd, MTIOCTOP, &struct mtop)
  12.           ioctl(fd, MTIOCGET, &struct mtget)
  13.      The struct mtop, struct mtget and associated definitions are  defined  in
  14.      <sys/mtio.h> as follows:
  15.      /* Tape operations: ioctl(fd, MTIOCTOP, &struct mtop) */
  16.      struct mtop {
  17.          short  mt_op;         /* Operation (MTWEOF, etc.) */
  18.          int    mt_count;      /* Repeat count. */
  19.      };
  20.      #define MTWEOF   0    /* Write End-Of-File Marker */
  21.      #define MTFSF    1    /* Forward Space File mark */
  22.      #define MTBSF    2    /* Backward Space File mark */
  23.      #define MTFSR    3    /* Forward Space Record */
  24.      #define MTBSR    4    /* Backward Space Record */
  25.      #define MTREW    5    /* Rewind tape */
  26.      #define MTOFFL   6    /* Rewind and take Offline */
  27.      #define MTNOP    7    /* No-Operation, set status only */
  28.      #define MTRETEN  8    /* Retension (completely wind and rewind) */
  29.      #define MTERASE  9    /* Erase the tape and rewind */
  30.      #define MTEOM    10   /* Position at End-Of-Media */
  31.      #define MTMODE   11   /* Select tape density */
  32.      #define MTBLKZ   12   /* Select tape block size */
  33.      /* Tape status: ioctl(fd, MTIOCGET, &struct mtget) */
  34.      struct mtget {
  35.          short  mt_type;       /* Type of tape device. */
  36.          /* Device dependent "registers". */
  37.          short  mt_dsreg;      /* Drive status register. */
  38.          short  mt_erreg;      /* Error register. */
  39.          /* Misc info. */
  40.          off_t  mt_resid;      /* Residual count. */
  41.                                                                              1
  42. MTIO(4)                   Minix Programmer's Manual                    MTIO(4)
  43.          off_t  mt_fileno;     /* Current File Number. */
  44.          off_t  mt_blkno;      /* Current Block Number within file. */
  45.          off_t  mt_blksize;    /* Current block size. */
  46.      };
  47.      See mt(1) for a detailed description on what each  operation  does.   The
  48.      mt_type  field is always zero, there is no use for it yet.  Mt_dsreg is 0
  49.      (OK), 1 (Error), or 2 (EOF encountered.)  Mt_erreg holds the  SCSI  sense
  50.      key  of the last operation.  Mt_blksize is the current tape block size in
  51.      bytes, zero if the block size is variable.
  52.      Note that one can issue these commands on a file descriptor  that  is  in
  53.      use  to  read  or write data, something that mt can't do.  So you can add
  54.      eof markers in the middle of an output stream, or get  the  status  of  a
  55.      device before a rewind-on-close tape rewinds.
  56.      The driver will automatically add an end of file marker to a tape that is
  57.      written  to  if  you  execute  a space command.  If you write eof markers
  58.      yourself then the driver will not add one extra on close.
  59. SEE ALSO
  60.      mt(1), sd(4).
  61. AUTHOR
  62.      Kees J. Bot (kjb@cs.vu.nl)
  63.                                                                              2