# inotify_add_watch

## NAME



           inotify_add_watch - add a watch to an initialized inotify instance
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <sys/inotify.h>**
    
           **int inotify_add_watch(int** _fd_**, const char ***_path_**, uint32_t** _mask_**);**
    


## DESCRIPTION



           **inotify_add_watch**() adds a new watch, or modifies an existing
           watch, for the file whose location is specified in _path_ ; the
           caller must have read permission for this file.  The _fd_ argument
           is a file descriptor referring to the inotify instance whose watch
           list is to be modified.  The events to be monitored for _path_ are
           specified in the _mask_ bit-mask argument.  See inotify(7) for a
           description of the bits that can be set in _mask_.
    
           A successful call to **inotify_add_watch**() returns a unique watch
           descriptor for this inotify instance, for the filesystem object
           (inode) that corresponds to _path_.  If the filesystem object was
           not previously being watched by this inotify instance, then the
           watch descriptor is newly allocated.  If the filesystem object was
           already being watched (perhaps via a different link to the same
           object), then the descriptor for the existing watch is returned.
    
           The watch descriptor is returned by later read(2)s from the
           inotify file descriptor.  These reads fetch _inotify_event_
           structures (see inotify(7)) indicating filesystem events; the
           watch descriptor inside this structure identifies the object for
           which the event occurred.
    


## RETURN VALUE



           On success, **inotify_add_watch**() returns a watch descriptor (a
           nonnegative integer).  On error, -1 is returned and _errno_ is set
           to indicate the error.
    


## ERRORS



           **EACCES** Read access to the given file is not permitted.
    
           **EBADF** The given file descriptor is not valid.
    
           **EEXIST** _mask_ contains **IN_MASK_CREATE** and _path_ refers to a file
                  already being watched by the same _fd_.
    
           **EFAULT** _path_ points outside of the process's accessible address
                  space.
    
           **EINVAL** The given event mask contains no valid events; or _mask_
                  contains both **IN_MASK_ADD** and **IN_MASK_CREATE** ; or _fd_ is not
                  an inotify file descriptor.
    
           **ENAMETOOLONG**
                  _path_ is too long.
    
           **ENOENT** A directory component in _path_ does not exist or is a
                  dangling symbolic link.
    
           **ENOMEM** Insufficient kernel memory was available.
    
           **ENOSPC** The user limit on the total number of inotify watches was
                  reached or the kernel failed to allocate a needed resource.
    
           **ENOTDIR**
                  _mask_ contains **IN_ONLYDIR** and _path_ is not a directory.
    


## STANDARDS



           Linux.
    


## EXAMPLES



           See inotify(7).
    


* * *