2 #include <sys/socket.h>
12 #define CHECKFD_CMD "checkfd"
13 #define CHECKFD_PATH "/usr/local/bin/" CHECKFD_CMD
19 int s[2], status, ecode;
21 if (socketpair(AF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0, s) < 0)
22 err(1, "socketpair failed");
26 err(1, "fork failed");
27 } else if (pid == 0) {
30 snprintf(fd1, sizeof(fd1), "%d", s[0]);
31 snprintf(fd2, sizeof(fd2), "%d", s[1]);
32 if (execl(CHECKFD_PATH, CHECKFD_CMD, fd1, fd2, NULL) < 0)
33 err(3, "execl failed");
36 if (waitpid(pid, &status, 0) < 0)
37 err(1, "waitpid failed");
39 if (!WIFEXITED(status))
40 errx(1, CHECKFD_CMD " did not exit");
42 ecode = WEXITSTATUS(status);
44 warnx("exit code %d", ecode);
48 fprintf(stderr, "passed\n");