getmntent, getmntany, hasmntopt, putmntent - interface to /etc/fstab  and

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

     int getmntent(FILE *mfp, struct mnttab *mtp)
     int getmntany(FILE *mfp, struct mnttab *mtp, const struct mnttab *look)
     char *hasmntopt(struct mnttab *mtp, const char *opt)
     int putmntent(FILE *mfp, const struct mnttab *mtp)

     The getmntent functions  provide  an  interface  to  the  /etc/fstab  and
     /etc/mtab files.  (See fstab(5)).

     To read one of these files one calls getmntent() several times on a  file
     opened  by fopen(3) to read the entries in the table until -1 is returned
     for end-of-file.

     Getmntany() calls getmntent() until it finds an entry that  matches  look
     for  the  device, mount point and type fields.  If one of the fields is a
     null pointer, or equal to  the  field  in  the  table  then  it  matches.
     Devices match when their device numbers are equal, types match if you are
     looking for dev and the table contains 1, 2, 1f, or 2f.

     To write to a table you need to open it in a write or append mode and use
     putmntent() to add an entry.

     Hasmntopt() is a utility function that tells if a table entry has a given
     option,  returning  the  address  of  the  substring  that  matched, null

     The struct mnttab is defined by <sys/mnttab.h> as follows:

     struct mnttab {
         char  *mnt_special;  /* name of mounted device */
         char  *mnt_mountp;   /* mount point */
         char  *mnt_fstype;   /* type of mount: dev, swap, 1, 2f ... */
         char  *mnt_mntopts;  /* options: ro, rw, noauto, ... */
         char  *mnt_freq;     /* how often to dump (days) */
         char  *mnt_fsckpass; /* fsck pass number */
         char  *mnt_time;     /* time of mount as by time(2) */

     fopen(3), fstab(5), mount(1), mount(2).

     Getmntent() and getmntany() return -1 on end-of-file or error,  otherwise
     a   nonnegative   number  is  returned:   Zero  for  a  successful  read,
     MNT_TOOLONG if the line from the table exceeds  the  internal  buffer  of
     MNT_LINE_MAX  bytes,  MNT_TOOMANY if a line contains too many fields, and
     MNT_TOOFEW if a line contains too few fields.

     Putmntent() returns the number of bytes written on success, -1 on error.

     Getmntent() returns a pointer to static storage that  is  overwritten  in
     each call.

     Kees J. Bot (