Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MAT_REWIND(3)	       FreeBSD Library Functions Manual		 MAT_REWIND(3)

NAME
     Mat_Rewind	-- Rewinds an open MAT file to the beginning.

SYNOPSIS
     #include <matio.h>

     int
     Mat_Rewind(mat_t *matfp);

DESCRIPTION
     Rewinds an	open MAT file so that Mat_VarReadNext()	or
     Mat_VarReadNextInfo() reads the first variable in the file.

RETURN VALUES
     The function returns 0 on success,	or -1 on failure.

EXAMPLES
     The following example shows a list	of variables in	the MAT	file, and
     prompts the user for the index of the variable to read.  If the index is
     valid, the	file is	reset to the beginning,	and variables read until the
     selected index is reached.

     #include <stdlib.h>
     #include <stdio.h>
     #include "matio.h"

     int
     main(int argc, char **argv)
     {
	 mat_t	  *matfp;
	 matvar_t *matvar;
	 int	   idx,	num_variables;

	 matfp = Mat_Open(argv[1], MAT_ACC_RDONLY);
	 if ( NULL == matfp ) {
	     fprintf(stderr, "Error opening MAT	file %s0, argv[1]);
	     return EXIT_FAILURE;
	 }

	 idx = 0;
	 while ( NULL != (matvar = Mat_VarReadNextInfo(matfp)) ) {
	     idx++;
	     printf("%3d. %s0, idx, matvar->name);
	     Mat_VarFree(matvar);
	 }
	 num_variables = idx;
	 if ( num_variables > 0	) {
	     printf("Which variable would you like to read? ");
	     if	( 0 == fscanf(stdin,"%d",&idx) ) {
		 printf("Invalid variable selection!0);
	     } else if ( idx < 1 || idx	> num_variables	) {
		 fprintf(stderr, "That is an invalid variable index!0);
	     } else {
		 int k;
		 Mat_Rewind(matfp);
		 for ( k = 1; k	< idx; k++ ) {
		     matvar = Mat_VarReadNextInfo(matfp);
		     Mat_VarFree(matvar);
		 }
		 matvar	= Mat_VarReadNext(matfp);
		 Mat_VarPrint(matvar, 1);
		 Mat_VarFree(matvar);
	     }
	 }

	 Mat_Close(matfp);
	 return	EXIT_SUCCESS;
     }

SEE ALSO
     Mat_Open(3), Mat_Close(3),	Mat_VarReadNext(3), Mat_VarReadNextInfo(3),
     Mat_VarPrint(3)

FreeBSD	13.0		      September	12, 2019		  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mat_Rewind&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help