5 #include <sys/select.h>
10 main(int argc
, const char* const* argv
)
12 const char* config
[] = {
13 argc
>= 2 ? argv
[1] : "rwe",
14 argc
>= 3 ? argv
[2] : "rwe",
15 argc
>= 4 ? argv
[3] : "rwe"
26 for (int fd
= 0; fd
< 3; fd
++) {
27 if (strchr(config
[fd
], 'r'))
29 if (strchr(config
[fd
], 'w'))
30 FD_SET(fd
, &writeSet
);
31 if (strchr(config
[fd
], 'e'))
32 FD_SET(fd
, &errorSet
);
35 int result
= select(3, &readSet
, &writeSet
, &errorSet
, NULL
);
36 fprintf(stderr
, "select(): %d\n", result
);
38 for (int fd
= 0; fd
< 3; fd
++) {
39 fprintf(stderr
, "fd %d: %s%s%s\n", fd
,
40 FD_ISSET(fd
, &readSet
) ? "r" : " ",
41 FD_ISSET(fd
, &writeSet
) ? "w" : " ",
42 FD_ISSET(fd
, &errorSet
) ? "e" : " ");