>  Docs Center  >  Libraries  >  ASTROLIB  >  MRD_SKIP






      Skip a number of bytes from the current location in a file or a pipe


      First tries using POINT_LUN and if this doesn't work, perhaps because
      the unit is a pipe or a socket, MRD_SKIP will just read in the
      requisite number of bytes.

Calling Sequence

      MRD_SKIP, Unit, Nskip


      Unit - File unit for the file or pipe in question, integer scalar
      Nskip - Number of bytes to be skipped, positive integer


      This routine should be used in place of POINT_LUN wherever a pipe
      or socket may be the input unit (see the procedure FXPOSIT for an
      example). Note that it assumes that it can only work with nskip >= 0
      so it doesn't even try for negative values.
      For reading a pipe, MRD_SKIP currently uses a maximum buffer size
      of 8 MB. This chunk value can be increased for improved efficiency
      (or decreased if you really have little memory.)

Revision History

      Written, Thomas A. McGlynn July 1995
Don't even try to skip bytes on a pipe with POINT_LUN, since this
might reset the current pointer W. Landsman April 1996
      Increase buffer size, check fstat.compress W. Landsman Jan 2001
      Only a warning if trying read past EOF W. Landsman Sep 2001
      Use 64bit longword for skipping in very large files W. Landsman Sep 2003
      Assume since V5.4, fstat.compress available W. Landsman April 2006
      POINT_LUN for compressed files is as fast as any W. Landsman Oct 2006
      Don't try to use POINT_LUN on compressed files W. Landsman Dec. 2006

© 2022 Harris Geospatial Solutions, Inc. |  Legal
My Account    |    Store    |    Contact Us