
*********

Listing 2

#include <stdio.h>

typedef   int  MAT[4][4];

main()
   {
     MAT  matA, matB;
     int  i, j, fd, n = 4;
     char *cptr;

     puts("\014\n\n ENTER MATRIX ROW BY ROW");

     for (i = 0; i < n; ++i)
          for(j = 0; j < n; ++j)
               scanf("%d", &matA[i][j]);

     fd = creat("mats.data",4);

     cptr = matA;   /*no cast -- even tho the scalar of matA is 32 */  

     write(fd, cptr, sizeof(MAT));  /* cptr is taken to be the 
                              pointer to an array of 32 char */ 

     close(fd);

     fd = open("mats.data",2);

     cptr = matB;   /* cptr now points to the other matrix -- no 
                                             cast */
     read(fd, cptr, sizeof(MAT));
     close(fd);

     puts("\n\n\n");
     for (i = 0; i < n; ++i)
          {
          for (j = 0; j < n; ++j)             /* 4 x 4 matrix of */
               printf("%4d", matB[i][j]);     /* integers is 
                                                  output */
          putchar('\n');                     /* to screen */
          }
        }


