我该如何获取描述符类型?我正在使用epoll来监控许多描述符,例如套接字、定时器和信号。我看到可以使用fstat,但是模式只涉及套接字和管道的内容。fstat manpage。是否有一种特殊的函数来识别描述符?
我认为没有简单或统一的方法来完成你所要求的操作。命令lsof可以确定这些信息,因此您可能需要查看该代码以了解他们在做什么。从我的经验来看,要确定描述符是否为套接字,可以使用getsockopt(2)。如果调用getsockopt失败并且errno == ENOTSOCK,则您的描述符不是套接字。同样,您可以使用isatty(3)来确定描述符是否属于串行端口或终端。
int
值以及它们的类型,然后稍后可以与这个存储进行比较。 - alk