Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从fd#u set c+;获取x处的文件描述符+;linux_C++_Linux_File Descriptor - Fatal编程技术网

C++ 从fd#u set c+;获取x处的文件描述符+;linux

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查看

我知道在windows上可以通过执行myfd_set.fd_array[x]来获取文件描述符,但当我尝试在Linux上执行此操作时,它不起作用。要获取文件描述符,我必须做什么?

POSIX没有定义宏来执行您要求的操作

您在Windows上使用的技术是可行的,因为描述符集的结构在该平台上,所以您可以可靠地访问其内部

通常,您不需要此功能。我认为我从未见过需要在
FD\u集合中获取第n个描述符的轮询循环。通常,将FD添加到集合中,将其传递到
select
,然后-在描述符上循环-使用
FD\u ISSET
查看该文件上是否有任何活动。或者,更好的方法是使用或
epoll
实现更高效、更可扩展的方法


我建议您尝试将代码重新构造为更常见的模式,以避免您的需求。

您是否尝试阅读了
fd\u set
手册页面?键入
man fd_set
,以获取您要查找的信息。您已经有了所需的所有文档。@SamVarshavchik
fd_集
手册页的哪一部分回答了这个问题?解释
fd_集
宏的那一部分?@SamVarshavchik
fd_集
以什么方式给您第x个fd?如果你的居高临下实际上得到了任何事实的支持,那么毫无疑问,你的居高临下会(稍微)更有建设性……只要打电话给宏,如果你对我的评论有异议,欢迎你一如既往地标记它。祝您有个美好的一天。