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

# inotify\_init(2)

initialize an inotify instance

## NAME

inotify\_init, inotify\_init1 - initialize an inotify instance

## LIBRARY

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

## SYNOPSIS

```
#include <sys/inotify.h>
```

**int inotify\_init(void);** **int inotify\_init1(int** *flags***);**

## DESCRIPTION

For an overview of the inotify API, see [**inotify**(7)](/inotify/7.md).

**inotify\_init**() initializes a new inotify instance and returns a file descriptor associated with a new inotify event queue.

If *flags* is 0, then **inotify\_init1**() is the same as **inotify\_init**(). The following values can be bitwise ORed in *flags* to obtain different behavior:

- **IN\_NONBLOCK**

  Set the **O\_NONBLOCK** file status flag on the open file description (see [**open**(2)](/open/2.md)) referred to by the new file descriptor. Using this flag saves extra calls to [**fcntl**(2)](/fcntl/2.md) to achieve the same result.

- **IN\_CLOEXEC**

  Set the close-on-exec (**FD\_CLOEXEC**) flag on the new file descriptor. See the description of the **O\_CLOEXEC** flag in [**open**(2)](/open/2.md) for reasons why this may be useful.

## RETURN VALUE

On success, these system calls return a new file descriptor. On error, -1 is returned, and *errno* is set to indicate the error.

## ERRORS

- **EINVAL**

  (**inotify\_init1**()) An invalid value was specified in *flags*.

- **EMFILE**

  The user limit on the total number of inotify instances has been reached.

- **EMFILE**

  The per-process limit on the number of open file descriptors has been reached.

- **ENFILE**

  The system-wide limit on the total number of open files has been reached.

- **ENOMEM**

  Insufficient kernel memory is available.

## STANDARDS

Linux.

## HISTORY

- **inotify\_init**()

  Linux 2.6.13, glibc 2.4.

- **inotify\_init1**()

  Linux 2.6.27, glibc 2.9.

## SEE ALSO

[**inotify\_add\_watch**(2)](/inotify_add_watch/2.md), [**inotify\_rm\_watch**(2)](/inotify_rm_watch/2.md), [**inotify**(7)](/inotify/7.md)
