fcntl(fd, F_GETFD)
是检查fd
是否有效的打开文件描述符的最便宜的规范方法。如果需要大量检查,则使用poll
零超时并将events
成员设置为0并POLLNVAL
在revents
返回后进行检入更为有效。
话虽如此,“检查给定资源句柄是否仍然有效”操作几乎总是根本上是不正确的。释放资源句柄后(例如fd为close
d),可以将其值重新分配给您分配的下一个此类资源。如果还有其他可用的引用,它们将错误地在新资源上而不是旧资源上运行。因此,真正的答案可能是:如果您尚不了解程序的逻辑,则有一些基本的基本逻辑错误需要修复。