getmntent_r - Linux


getmntent_r retrieves the next entry from the mounted file system list. It can be used to enumerate all mounted file systems in the system in a loop.


#include <mntent.h>

struct mntent *getmntent_r(FILE *file, struct mntent *mnt, char *buf, int len);




List mounted file systems

#include <stdio.h>
#include <mntent.h>

int main() {
    FILE *f;
    struct mntent *ent;
    char buf[1024];

    f = setmntent("/proc/mounts", "r");
    if (f == NULL) {
        return 1;

    while ((ent = getmntent_r(f, ent, buf, sizeof(buf)))) {
        printf("%s on %s type %s\n",
               ent->mnt_fsname, ent->mnt_dir, ent->mnt_type);

    return 0;

Common Issues

  • Incorrect file path: Ensure you specify the correct path to the mounted file system list, typically /proc/mounts.
  • Invalid buffer: The length of the buffer (len) should be large enough to accommodate the maximum possible entry size.


getmntent_r can be used in conjunction with other commands to perform advanced tasks:

  • findmnt: List mounted file systems based on specific criteria, using getmntent_r to retrieve the entries.
  • df: Display disk usage information for mounted file systems, utilizing getmntent_r to enumerate the systems.

Related Commands

  • mount: Mount a file system.
  • umount: Unmount a file system.
  • swapon: Enable swap space on a file or device.