SRC_TO_TARGET
direction = FD_ISSET(src_fd, &rfds) ? SRC_TO_TARGET : TARGET_TO_SRC;
nread = read(direction == SRC_TO_TARGET ? src_fd : target_fd, buf, sizeof(buf));
nwrite = write(direction == SRC_TO_TARGET ? target_fd : src_fd, buf, nread);