bionic (3) ms_find_reclen.3.gz

Provided by: libmseed-doc_2.19.5-1_all bug

NAME

       ms_find_reclen - Determine SEED record data length

SYNOPSIS

       #include <libmseed.h>

       int  ms_find_reclen ( const char *recbuf, int recbuflen,
                                   FILE *fileptr );

DESCRIPTION

       ms_find_reclen  verifies that the specified recbuf buffer contains a SEED data record by looking for data
       record signatures in the fixed section data header and determines the data record length by 1)  searching
       the  buffer  up  to  recbuflen  bytes  for  a Blockette 1000 and, failing that, 2) if fileptr is not NULL
       reading the next 48 bytes from the file and looking for a data record signature (with  detection  of  the
       next  data  record  implying  the  length  of the current record).  If data is read from fileptr the read
       position is returned to it's position prior to this function call.

       The MS_ISVALIDHEADER macro is used to verify that the buffer contains a valid  SEED  data  record.   When
       searching  for  the  next  record header to determine record length one of the macros MS_ISVALIDHEADER or
       MS_ISVALIDBLANK must test positively for a record to be detected.  Blank/noise records are records with a
       valid SEED sequence number followed by ASCII space characters to the end of the record.

       ms_find_reclen  will  return  0  when  it  detects that the buffer contains a SEED data record but cannot
       determine the record length.  This happens when no Blockette 1000 is not  found  within  recbuflen  bytes
       and, assuming a valid fileptr is supplied, no record header is detected in the next 48 bytes of the file.
       The idea is to then read more data from the file (i.e. the next larger, valid  record  length)  and  call
       ms_find_reclen again and so on until the record length can be determined.

RETURN VALUES

       ms_find_reclen returns the length of the Mini-SEED record in bytes or 0 if a data record was detected but
       the length could not be determined or -1 when no data record was detected.

SEE ALSO

       ms_readmsr(3), ms_readtraces(3) and msr_unpack(3).

AUTHOR

       Chad Trabant
       IRIS Data Management Center