GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


NAME

       xdf_read - Read samples from a xDF file

SYNOPSIS

       #include <xdfio.h>

       int xdf_read(struct xdf* xdf, unsigned int ns, ...);

DESCRIPTION

       xdf_read()  reads  ns samples from the xDF file referenced by xdf. This
       file   should   have   been   opened    with    mode    XDF_READ    and
       xdf_prepare_arrays(3)  should  have  been  successfully  called  on it.
       xdf_read() will fail otherwise).

       The data to be read  will  be  transferred  into  arrays  specified  by
       pointers  provided  in  the variable list of arguments of the function.
       The function expects the same number of arrays as specified by previous
       call  to xdf_define_arrays(3). The internal organisation of the data in
       the  arrays  should  have  been  specified  previously  with  calls  to
       xdf_set_chconf(3).

       In  addition,  it  is  important to note that none of the arrays should
       overlap.

RETURN VALUE

       The function returns the number of the samples successfully  read  from
       the  xDF  file  in  case  of success. The number of samples read can be
       smaller than the number requested in the end of the file is reached. In
       case of error, -1 is returned and errno is set appropriately.

ERRORS

       EINVAL xdf is NULL

       EPERM  No successfull call to xdf_prepare_transfer(3) have been done on
              xdf or it has been opened using the mode XDF_WRITE.

       EINTR  The call was  interrupted  by  a  signal  before  any  data  was
              written; see signal(7).

       EIO    A low-level I/O error occurred while reading from the inode.

       ESTALE Stale  file  handle.  This error can occur for NFS and for other
              file systems

EXAMPLE

              /* Assume xdf references a xDF file opened for reading whose
              channels source their data in 2 arrays of float whose strides
              are the length of respectively 4 and 6 float values,
              i.e. 16 and 24 bytes (in most platforms)*/
              #define NS    3
              float array1[NS][4], array2[NS][6];
              unsigned int strides = {4*sizeof(float), 6*sizeof(float)};
              unsigned int i;

              xdf_define_arrays(xdf, 2, strides);
              if (xdf_prepare_transfer(xdf))
                   return 1;

              for (i=0; i<45; i+=NS) {
                   /* Write the values to the file */
                      if (xdf_write(xdf, NS, array1, array2))
                        return 1;

                   /* Use the values contained in array1 and array2*/
                   ...

              }

              xdf_close(xdf);

SEE ALSO

       xdf_set_chconf(3), xdf_define_arrays(3), xdf_prepare_transfer(3)



  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to webmaster@gnu.wiki.
Page load time: 0.118 seconds. Last modified: November 04 2018 12:49:43.