
Beman Dawes wrote:
My point is that if "foo" is a socket or some other non-directory, non-streamable-file, entity, then classifying it as "not_found_flag" is very misleading.
Of course it won't be classified as not_found. It won't be classified as anything, as it doesn't meet the expectations of any category.
Yet status() has to classify it as something.
Why? A classification only makes sense if it gives us useful information. The "other" category has no other purpose but to support the arbitrary requirement that status() needs to set one and only one bit. It is not unreasonable for some entities to fall in more than one category, or in no category, and the additional requirement that the categories are disjoint and fully cover the domain does not seem to buy us anything.