> If there is a way to reliably check whether something is a HANDLE or not > (or a low-level fd or not), the code could be re-written to cleanly > treat them as separate objects, and thus be more reliable.
Both HANDLEs and fds are indexes into a table, in the end. So you can check if X is a HANDLE or if X is a fd, but there's no guarantee that the same X cannot be a HANDLE *and* a fd; and if so, it would likely mean two different things depending on how you interpret it. Paolo