3

如何获取描述符类型?我正在使用 epoll 来监视许多描述符,例如套接字、计时器和信号。我看到使用 fstat 是可能的,但该模式只说明了套接字和管道。fstat 联机帮助页。是否有识别描述符的特殊功能?

4

1 回答 1

1

我不认为有任何简单或统一的方式来做你所要求的。命令 lsof] 1设法确定此信息,因此您可能需要查看该代码以了解它们在做什么。

我想确定一个描述符是否是一个套接字,你可以使用getsockopt(2)。如果对 getsockopt 的调用失败并且 errno == ENOTSOCK 则您的描述符不是套接字。同样,您可以使用 isatty(3) 来确定描述符是否属于串行端口或终端。

于 2013-06-21T13:27:56.707 回答