A valid file descriptor will be non-negative, i.e., 0 <= fd <= INT_MAX.
When all of the bits of a valid file descriptor are flipped, the result
is a negative value: ~0 = -1, ~1 = -2, ..., ~INT_MAX = INT_MIN. If all
of these bits are flipped again, then the file descriptor is recovered.
Negating the file descriptor does not quite achieve this, because there
will be no change for fd 0. (Likewise, negating INT_MIN would not cause
any change in value, but it is never a valid file descriptor.)
Link: https://bugzilla.kernel.org/show_bug.cgi?id=79411
Signed-off-by: David Ward <david.ward@gatech.edu>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
(This provides an easy way of ignoring a
file descriptor for a single
.BR poll ()
-call: simply negate the
+call: simply set the
.I fd
-field.
-Note, however, that this technique can't be used to ignore file descriptor 0.)
+field to its bitwise complement.)
.PP
The field
.I events