Lines Matching refs:fd

20 #define	SETUP(fd, rfds, tv) do {				\
22 FD_SET((fd), &(rfds)); \
60 child(int fd, int num)
68 fd = open(FIFONAME, O_RDONLY | O_NONBLOCK);
69 if (fd < 0)
72 if (fd >= FD_SETSIZE)
73 errx(1, "fd = %d too large for select()", fd);
76 SETUP(fd, rfds, tv);
77 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
91 report(num++, "0", 1, FD_ISSET(fd, &rfds));
107 SETUP(fd, rfds, tv);
108 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
110 report(num++, "1", 0, FD_ISSET(fd, &rfds));
116 SETUP(fd, rfds, tv);
117 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
119 report(num++, "2", 1, FD_ISSET(fd, &rfds));
120 if (read(fd, buf, sizeof buf) != 1)
122 SETUP(fd, rfds, tv);
123 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
125 report(num++, "2a", 0, FD_ISSET(fd, &rfds));
131 SETUP(fd, rfds, tv);
132 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
134 report(num++, "3", 1, FD_ISSET(fd, &rfds));
140 * start quite from scratch since the read fd is not new. Check
147 SETUP(fd, rfds, tv);
148 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
150 report(num++, "4", 0, FD_ISSET(fd, &rfds));
156 SETUP(fd, rfds, tv);
157 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
159 report(num++, "5", 1, FD_ISSET(fd, &rfds));
170 SETUP(fd, rfds, tv);
171 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
173 report(num++, "6", 1, FD_ISSET(fd, &rfds));
174 if (read(fd, buf, sizeof buf) != 1)
176 SETUP(fd, rfds, tv);
177 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
179 report(num++, "6a", 1, FD_ISSET(fd, &rfds));
194 fd1 = fd;
195 fd = fd2;
196 SETUP(fd, rfds, tv);
197 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
199 report(num++, "6b", 1, FD_ISSET(fd, &rfds));
200 fd = fd1;
201 SETUP(fd, rfds, tv);
202 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
204 report(num++, "6c", 1, FD_ISSET(fd, &rfds));
206 SETUP(fd, rfds, tv);
207 if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0)
209 report(num++, "6d", 1, FD_ISSET(fd, &rfds));
211 close(fd);
218 parent(int fd)
224 fd = open(FIFONAME, O_WRONLY | O_NONBLOCK);
225 if (fd < 0)
233 if (write(fd, "", 1) != 1)
240 if (close(fd) != 0)
249 fd = open(FIFONAME, O_WRONLY | O_NONBLOCK);
250 if (fd < 0)
257 if (write(fd, "", 1) != 1)
264 if (close(fd) != 0)
276 int fd[2], num;
288 fd[0] = -1;
289 fd[1] = -1;
293 fd) != 0)
297 if (pipe(fd) != 0)
306 (void)close(fd[1]);
307 child(fd[0], num);
310 (void)close(fd[0]);
311 parent(fd[1]);