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

FILE      *testfile;

float     r();
int       w();

main()
     {
     float     f;
     int       rc;

     /* open test file */
     testfile = fopen("test.dat", "rb+");
     if (testfile == NULL)
          {
          printf("MAIN : open error\n");
          return;
          }
     printf("MAIN : \tf = %f\n", f);
     
     /* call subroutine to read the floating point number */
     f = r();

     /* call subroutine to write a floating point number */
     f = 123.45;
     w(f);

     /* call subroutine to read the floating point number */
     f = r();

     fclose (testfile);
     return;

     }

/****************************************************************
* subroutine R : read a floating point number from test file
****************************************************************/
float
r()
     {
     float     f;
     int       rc;
     rewind(testfile);
     rc = fread(&f, sizeof(float), 1, testfile);
     if (rc != 1)
          {
          printf("R : read error\n");
          exit(0);
          }
     printf("R : ;\tf = %f\n", f);
     return f;

     }

/***************************************************************
* subroutine W : write a floating point number in test file
***************************************************************/
int
w(flo)
float     flo;
     {
     float     f;
     int       rc;
     
     f = flo;

     printf("W : \tf = %fzn", f);

     rewind(testfile);
     rc = fwrite(&f, sizeof(float), 1, testfile);
     if (rc != 1)
          {
          printf("W : write error\n");
          exit(0);
          }

     return 1;
     }
/********
* OUTPUT
*********
MAIN :    f = 123.449997
R :       f = 123.449997
W :       f = 123.450000
R :       f = 123.449997

*/

