【问题标题】:Using same fds for read/write with select in C在 C 中使用与 select 相同的 fds 进行读/写
【发布时间】:2015-02-22 20:51:00
【问题描述】:

我有两个文件描述符,fd1fd2,我想从中读取和写入。我把它们放在fd_set

fd_set socks;  
FD_ZERO(&socks);
FD_SET(fd1,&socks);
FD_SET(fd2,&socks);

如果我将它们同时作为readfdswritefds 传递给select,如下所示:

int fds = select(highsock+1, &socks, &socks, (fd_set *) 0, NULL);

并使用

FD_ISSET(fd1, &socks)

我如何知道fd1 是否准备好阅读写作?

【问题讨论】:

  • 使用多个fd_set(不同的读写集)。

标签: c sockets select


【解决方案1】:

你没有。 select() 在多次传递同一个指针时的行为是未定义的。

为可读和可写套接字传递两个独立的 FD 集。

【讨论】:

    猜你喜欢
    • 2020-03-04
    • 2021-09-03
    • 2013-05-19
    • 2023-03-10
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多