These rules are intended to answer awkward questions. If you are reading this for the first time, skip to the next section.
"w",
"t" and "p".
"r"
or "rw".
"w" descriptors are automatically changed to "r"
descriptors.
If the function you are passing the descriptor to uses WIO (see
§3.8.6), then "p" descriptors become "t".
If the function you are passing the descriptor to uses PIO, then "p"
descriptors are unchanged.