C++ 从fd#u set c+;获取x处的文件描述符+;linux
我知道在windows上可以通过执行myfd_set.fd_array[x]来获取文件描述符,但当我尝试在Linux上执行此操作时,它不起作用。要获取文件描述符,我必须做什么?POSIX没有定义宏来执行您要求的操作 您在Windows上使用的技术是可行的,因为描述符集的结构在该平台上,所以您可以可靠地访问其内部 通常,您不需要此功能。我认为我从未见过需要在C++ 从fd#u set c+;获取x处的文件描述符+;linux,c++,linux,file-descriptor,C++,Linux,File Descriptor,我知道在windows上可以通过执行myfd_set.fd_array[x]来获取文件描述符,但当我尝试在Linux上执行此操作时,它不起作用。要获取文件描述符,我必须做什么?POSIX没有定义宏来执行您要求的操作 您在Windows上使用的技术是可行的,因为描述符集的结构在该平台上,所以您可以可靠地访问其内部 通常,您不需要此功能。我认为我从未见过需要在FD\u集合中获取第n个描述符的轮询循环。通常,将FD添加到集合中,将其传递到select,然后-在描述符上循环-使用FD\u ISSET查看
FD\u集合中获取第n个描述符的轮询循环。通常,将FD添加到集合中,将其传递到select
,然后-在描述符上循环-使用FD\u ISSET
查看该文件上是否有任何活动。或者,更好的方法是使用或epoll
实现更高效、更可扩展的方法
我建议您尝试将代码重新构造为更常见的模式,以避免您的需求。您是否尝试阅读了fd\u set
手册页面?键入man fd_set
,以获取您要查找的信息。您已经有了所需的所有文档。@SamVarshavchikfd_集
手册页的哪一部分回答了这个问题?解释fd_集
宏的那一部分?@SamVarshavchikfd_集
以什么方式给您第x个fd?如果你的居高临下实际上得到了任何事实的支持,那么毫无疑问,你的居高临下会(稍微)更有建设性……只要打电话给宏,如果你对我的评论有异议,欢迎你一如既往地标记它。祝您有个美好的一天。