29 #include <sys/socket.h>
41 static pid_t fork_and_read_select(
const char *what,
int delay,
int fd)
47 switch (pid = fork()) {
55 switch (select(fd + 1, &readfds, (fd_set *) 0, &readfds, &tv)) {
59 msg_info(
"%s select timed out", what);
70 int main(
int argc,
char **argv)
79 if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair1) < 0)
81 if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair2) < 0)
84 vstream_printf(
"Doing multiple select on socket1, then write to it...\n");
86 fork_and_read_select(
"socket1",
DELAY, pair1[0]);
87 fork_and_read_select(
"socket1",
DELAY, pair1[0]);
88 fork_and_read_select(
"socket2",
DELAY, pair2[0]);
89 fork_and_read_select(
"stdin",
DELAY, 0);
90 if (write(pair1[1],
"", 1) != 1)
92 while (wait((
int *) 0) >= 0)
VSTREAM * vstream_printf(const char *fmt,...)
NORETURN msg_fatal(const char *fmt,...)
int vstream_fflush(VSTREAM *stream)
int main(int argc, char **argv)
void msg_vstream_init(const char *name, VSTREAM *vp)
void msg_info(const char *fmt,...)