/*
  file:    getmntent.c
  purpose: shell utility implementing getmntent() functionality
  created: pasha jan 3 1999
  usage:   getmntent; prints on stdout a list of mounted dirs
  notes:   works on Solaris
*/


#include <stdio.h>
#include <sys/mnttab.h>


int main (int argc, char* argv[])
{
  int rval;
  FILE f;
  struct mnttab mt;

  while (1)
    {
      switch (rval = getmntent (&f, &mt))
	{
	case 0: /* ok */
	  printf ("%s %s %s %s %s\n", mt.mnt_special, mt.mnt_mountp, mt.mnt_fstype, mt.mnt_mntopts, 
		  mt.mnt_time);
	  break;

	case -1: /* EOF */
	  printf ("EOF\n");
	  return (0);
	  break;
	  
	case MNT_TOOLONG:
	  fprintf (stderr, "%s: MNT_TOOLONG error when reading /etc/mnttab\n", argv[0]);
	  return (rval);
	  break;

	case MNT_TOOMANY:
	case MNT_TOOFEW:
	  fprintf (stderr, "%s: incorrect syntax in /etc/mnttab\n", argv[0]);
	  return (rval);
	  break;

	default:
	  fprintf (stderr, "%s: unexpected error when reading /etc/mnttab\n", argv[0]);
	  return (-1);
	}
    }

  /* never reach here */
  exit (0);
} 

