#include #include #include #include #include #include #include #include void construire_fdset(fd_set *s, int fds[], int nb_fds) { ... } int main(int argc, char *argv[]) { int max_fd = -1; int fd[argc-1]; int nb_fd = 0; for(int i = 1 ; i < argc; i++) { fd[nb_fd] = ... ; if (fd[nb_fd] < 0) { perror("open"); continue; } if (fd[nb_fd] > max_fd) ...; nb_fd++; } max_fd++; while(1) { fd_set set; struct timeval timeout; timeout.tv_sec = 10; timeout.tv_usec = 0; construire_fdset(&set,fd,nb_fd); int nb = select (...); if (nb == 0) break; for (int i = 0; i < nb_fd; i++) if (...)) { char c; // lecture puis ecriture ... } } printf("bye bye\n"); return EXIT_SUCCESS; }