]>
Commit | Line | Data |
---|---|---|
efa25b17 MK |
1 | .\" Copyright (C) 2005 Robert Love |
2 | .\" and Copyright, 2006 Michael Kerrisk | |
4d2b74dd | 3 | .\" |
1dd72f9c | 4 | .\" %%%LICENSE_START(GPLv2+_DOC_FULL) |
4d2b74dd MK |
5 | .\" This is free documentation; you can redistribute it and/or |
6 | .\" modify it under the terms of the GNU General Public License as | |
7 | .\" published by the Free Software Foundation; either version 2 of | |
8 | .\" the License, or (at your option) any later version. | |
9 | .\" | |
10 | .\" The GNU General Public License's references to "object code" | |
11 | .\" and "executables" are to be interpreted as the output of any | |
12 | .\" document formatting or typesetting system, including | |
13 | .\" intermediate and printed output. | |
14 | .\" | |
15 | .\" This manual is distributed in the hope that it will be useful, | |
16 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | .\" GNU General Public License for more details. | |
19 | .\" | |
20 | .\" You should have received a copy of the GNU General Public | |
c715f741 MK |
21 | .\" License along with this manual; if not, see |
22 | .\" <http://www.gnu.org/licenses/>. | |
6a8d8745 | 23 | .\" %%%LICENSE_END |
4d2b74dd MK |
24 | .\" |
25 | .\" 2005-07-19 Robert Love <rlove@rlove.org> - initial version | |
26 | .\" 2006-02-07 mtk, various changes | |
27 | .\" | |
e8426ca2 | 28 | .TH INOTIFY_ADD_WATCH 2 2020-04-11 "Linux" "Linux Programmer's Manual" |
4d2b74dd MK |
29 | .SH NAME |
30 | inotify_add_watch \- add a watch to an initialized inotify instance | |
31 | .SH SYNOPSIS | |
6e969f22 | 32 | .B #include <sys/inotify.h> |
68e4db0a | 33 | .PP |
93440c02 | 34 | .BI "int inotify_add_watch(int " fd ", const char *" pathname ", uint32_t " mask ); |
4d2b74dd MK |
35 | .SH DESCRIPTION |
36 | .BR inotify_add_watch () | |
c13182ef | 37 | adds a new watch, or modifies an existing watch, |
dd28cb72 MK |
38 | for the file whose location is specified in |
39 | .IR pathname ; | |
40 | the caller must have read permission for this file. | |
c13182ef | 41 | The |
4d2b74dd | 42 | .I fd |
dd28cb72 MK |
43 | argument is a file descriptor referring to the |
44 | inotify instance whose watch list is to be modified. | |
45 | The events to be monitored for | |
46 | .I pathname | |
47 | are specified in the | |
48 | .I mask | |
49 | bit-mask argument. | |
4d2b74dd MK |
50 | See |
51 | .BR inotify (7) | |
52 | for a description of the bits that can be set in | |
53 | .IR mask . | |
efeece04 | 54 | .PP |
4d2b74dd MK |
55 | A successful call to |
56 | .BR inotify_add_watch () | |
7499e6bc | 57 | returns a unique watch descriptor for this inotify instance, |
30e2a22a | 58 | for the filesystem object (inode) that corresponds to |
7499e6bc MK |
59 | .IR pathname . |
60 | If the filesystem object | |
4d2b74dd | 61 | was not previously being watched by this inotify instance, |
c13182ef | 62 | then the watch descriptor is newly allocated. |
7499e6bc MK |
63 | If the filesystem object was already being watched |
64 | (perhaps via a different link to the same object), then the descriptor | |
4d2b74dd | 65 | for the existing watch is returned. |
efeece04 | 66 | .PP |
4d2b74dd MK |
67 | The watch descriptor is returned by later |
68 | .BR read (2)s | |
c13182ef | 69 | from the inotify file descriptor. |
4d2b74dd MK |
70 | These reads fetch |
71 | .I inotify_event | |
325f18da MK |
72 | structures (see |
73 | .BR inotify (7)) | |
9ee4a2b6 | 74 | indicating filesystem events; |
325f18da | 75 | the watch descriptor inside this structure identifies |
4d2b74dd | 76 | the object for which the event occurred. |
47297adb | 77 | .SH RETURN VALUE |
4d2b74dd MK |
78 | On success, |
79 | .BR inotify_add_watch () | |
ed09120a | 80 | returns a watch descriptor (a nonnegative integer). |
dec985f9 | 81 | On error, \-1 is returned and |
4d2b74dd MK |
82 | .I errno |
83 | is set appropriately. | |
84 | .SH ERRORS | |
85 | .TP | |
1b3fc756 | 86 | .B EACCES |
4d2b74dd MK |
87 | Read access to the given file is not permitted. |
88 | .TP | |
89 | .B EBADF | |
90 | The given file descriptor is not valid. | |
91 | .TP | |
49a2a105 MK |
92 | .B EEXIST |
93 | .I mask | |
94 | contains | |
95 | .B IN_MASK_CREATE | |
96 | and | |
97 | .I pathname | |
98 | refers to a file already being watched by the same | |
99 | .IR fd . | |
100 | .TP | |
4d2b74dd | 101 | .B EFAULT |
93440c02 | 102 | .I pathname |
4d2b74dd MK |
103 | points outside of the process's accessible address space. |
104 | .TP | |
105 | .B EINVAL | |
e935e108 | 106 | The given event mask contains no valid events; or |
4e821a8a HW |
107 | .I mask |
108 | contains both | |
109 | .B IN_MASK_ADD | |
110 | and | |
6f202877 MK |
111 | .BR IN_MASK_CREATE ; |
112 | or | |
9f5774a9 MK |
113 | .I fd |
114 | is not an inotify file descriptor. | |
4d2b74dd | 115 | .TP |
d54837e8 MK |
116 | .B ENAMETOOLONG |
117 | .I pathname | |
118 | is too long. | |
119 | .TP | |
6a03b9dd MK |
120 | .B ENOENT |
121 | A directory component in | |
122 | .I pathname | |
123 | does not exist or is a dangling symbolic link. | |
124 | .TP | |
4d2b74dd MK |
125 | .B ENOMEM |
126 | Insufficient kernel memory was available. | |
127 | .TP | |
128 | .B ENOSPC | |
129 | The user limit on the total number of inotify watches was reached or the | |
130 | kernel failed to allocate a needed resource. | |
12507e51 PM |
131 | .TP |
132 | .B ENOTDIR | |
133 | .I mask | |
134 | contains | |
135 | .B IN_ONLYDIR | |
136 | and | |
137 | .I pathname | |
138 | is not a directory. | |
ff457ccb | 139 | .SH VERSIONS |
4d2b74dd | 140 | Inotify was merged into the 2.6.13 Linux kernel. |
47297adb | 141 | .SH CONFORMING TO |
8382f16d | 142 | This system call is Linux-specific. |
232057c3 MK |
143 | .SH EXAMPLE |
144 | See | |
145 | .BR inotify (7). | |
47297adb | 146 | .SH SEE ALSO |
4d2b74dd | 147 | .BR inotify_init (2), |
c13182ef | 148 | .BR inotify_rm_watch (2), |
ccd2b351 | 149 | .BR inotify (7) |