在 C 中使用相同的 fd 进行读/写选择

问题描述 投票:0回答:1

我有两个文件描述符,

fd1
fd2
,我想从中读取和写入。我把它们放在
fd_set
:

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

如果我将它们同时作为

readfds
writefds
传递给
select
,如下所示:

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

并使用

FD_ISSET(fd1, &socks)

我如何知道

fd1
是否准备好阅读写作?

c sockets posix-select
1个回答
5
投票

你不知道。当同一指针被多次传递时

select()
的行为是未定义的。

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

© www.soinside.com 2019 - 2024. All rights reserved.