commit 5500b9dc74cad2a39c663e1c46454427d1e72a92 Author: Hizenberg469 Date: Sun Feb 23 18:36:39 2025 +0000 done till multi2.c diff --git a/select_poll/multi1.c b/select_poll/multi1.c new file mode 100644 index 0000000..25adc64 --- /dev/null +++ b/select_poll/multi1.c @@ -0,0 +1,22 @@ +#include +#include +#include +#include + +int main(){ + int fd1, fd2; + char buf[10]; + int n; + fd1 = open("./pone", O_RDWR); + fd2 = open("./ptwo", O_RDWR); + + printf(" Trying to read from pone \n"); + n = read( fd1, buf, 10); + + printf(" read data = %s from pone \n", buf); + printf(" Trying to read from ptwo\n"); + n = read( fd2, buf, 10); + + printf(" read data = %s from ptwo \n", buf); + return 0; +} \ No newline at end of file diff --git a/select_poll/multi2 b/select_poll/multi2 new file mode 100755 index 0000000..62dda9d Binary files /dev/null and b/select_poll/multi2 differ diff --git a/select_poll/multi2.c b/select_poll/multi2.c new file mode 100644 index 0000000..5203e6e --- /dev/null +++ b/select_poll/multi2.c @@ -0,0 +1,46 @@ +#include +#include +#include +#include +#include +#include + +int main(){ + + int fd1, fd2; + fd_set read_set, write_set; + char buf[10]; + struct timeval timeout; + int n; + + timeout.tv_sec = 10; + fd1 = open("./pone", O_RDWR); + fd2 = open("./ptwo", O_RDWR); + + FD_ZERO(&read_set); + FD_SET(fd1, &read_set); + FD_SET(fd2, &read_set); + + n = select(FD_SETSIZE, &read_set, NULL, NULL, &timeout); + if( n < 0 ){ + perror("select "); + exit(1); + } + + // test whether fd1 is ready or not + if( FD_ISSET(fd1, &read_set) ){ + printf(" reading from fd1 (pone)\n"); + n = read(fd1, buf, 10); + printf(" read data = %s from pone \n", buf); + } + + // test whether fd2 is ready or not + if( FD_ISSET(fd2, &read_set) ){ + printf(" reading from fd2 (ptwo)\n"); + n = read(fd2, buf, 10); + printf(" read data = %s from ptwo \n", buf); + } + + return 0; + +} \ No newline at end of file