---
name: "getfsspec"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/getfsent"
---

# getfsspec(3)

handle fstab entries

Part of [getfsent(3)](/getfsent/3.md).

## NAME

getfsent, getfsspec, getfsfile, setfsent, endfsent - handle fstab entries

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <fstab.h>
```

**int setfsent(void);** **struct fstab \*getfsent(void);** **void endfsent(void);**

**struct fstab \*getfsfile(const char \****mount\_point***);** **struct fstab \*getfsspec(const char \****special\_file***);**

## DESCRIPTION

These functions read from the file */etc/fstab*. The *struct fstab* is defined by:

```
struct fstab {
    char       *fs_spec;       /* block device name */
    char       *fs_file;       /* mount point */
    char       *fs_vfstype;    /* filesystem type */
    char       *fs_mntops;     /* mount options */
    const char *fs_type;       /* rw/rq/ro/sw/xx option */
    int         fs_freq;       /* dump frequency, in days */
    int         fs_passno;     /* pass number on parallel dump */
};
```

Here the field *fs\_type* contains (on a \*BSD system) one of the five strings "rw", "rq", "ro", "sw", "xx" (read-write, read-write with quota, read-only, swap, ignore).

The function **setfsent**() opens the file when required and positions it at the first line.

The function **getfsent**() parses the next line from the file. (After opening it when required.)

The function **endfsent**() closes the file when required.

The function **getfsspec**() searches the file from the start and returns the first entry found for which the *fs\_spec* field matches the *special\_file* argument.

The function **getfsfile**() searches the file from the start and returns the first entry found for which the *fs\_file* field matches the *mount\_point* argument.

## RETURN VALUE

Upon success, the functions **getfsent**(), **getfsfile**(), and **getfsspec**() return a pointer to a *struct fstab*, while **setfsent**() returns 1. Upon failure or end-of-file, these functions return NULL and 0, respectively.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **endfsent**(), **setfsent**() | Thread safety | MT-Unsafe race:fsent |
| **getfsent**(), **getfsspec**(), **getfsfile**() | Thread safety | MT-Unsafe race:fsent locale |

## VERSIONS

Several operating systems have these functions, for example, \*BSD, SunOS, Digital UNIX, AIX (which also has a **getfstype**()). HP-UX has functions of the same names, that however use a *struct checklist* instead of a *struct fstab*, and calls these functions obsolete, superseded by [**getmntent**(3)](/getmntent/3.md).

## STANDARDS

None.

## HISTORY

The **getfsent**() function appeared in 4.0BSD; the other four functions appeared in 4.3BSD.

## NOTES

These functions are not thread-safe.

Since Linux allows mounting a block special device in several places, and since several devices can have the same mount point, where the last device with a given mount point is the interesting one, while **getfsfile**() and **getfsspec**() only return the first occurrence, these two functions are not suitable for use under Linux.

## SEE ALSO

[**getmntent**(3)](/getmntent/3.md), [**fstab**(5)](/fstab/5.md)
