(Personally, I'd just use an int elsewhere and duplicate the low
bits into the current slot for the sake of ABI compatability, making
that low-bits duplicate write-only except for legacy users of
fileno().)
fileno() isn't exactly legacy use. It's pretty well used.
By "legacy" I meant only "compiled pre-change", not "deprecated" or
anything like it.
Or we could blow off ABI compatability. We've done that before.
Where?
1.x executables that use nested functions crash under 2.0, is the
first
example that comes to mind. (Yes, I know why they do, and I think I
even mostly understand why the change was made, but really, given the
nature of its major benefit, I don't see why pre-2.0 executables
weren't grandfathered.)