如何获得描述符类型?我使用epoll来监视许多描述符,如套接字、定时器和信号。我看到使用fstat是可能的,但模式只说一些关于套接字和管道。函数从。是否有一个特殊的函数来标识一个描述符?
我不认为有任何简单或统一的方法来做你所要求的。命令lsof]1负责确定这些信息,因此您可能想要查看该代码,看看它们在做什么。
为了确定描述符是否是套接字,您可以使用getsockopt(2)。如果调用getsockopt失败并且errno == ENOTSOCK,则描述符不是套接字。同样,您可以使用isatty(3)来确定描述符是否属于串行端口或终端。