Alejandro Colomar writes: > On Tue, Jan 06, 2026 at 05:08:01PM +1000, Seth McDonald wrote: >> pid_t(3type), uid_t(3type), and gid_t(3type) were initially not >> specified as integer types, but as arithmetic types: >> >> "All of the types listed in Table 2-1 shall be arithmetic types; pid_t >> shall be a signed arithmetic type."[1] >> >> This technically means the types could be floating-point arithmetic >> types in systems conforming to early versions of POSIX.1. > > But did any implementations do this? As far as I know, there were none, > which turns this into something that was only true in paper, and can be > entirely ignored. I don't think any did. It would surely be an interesting, to put it nicely, decision if they did. Here is the 2001 request that was accepted to make this change, for reference [1]: _____________________________________________________________________________ Problem: Currently uid_t and gid_t are only required to be arithmetic types. However, there are various commands such as "id" and "ls -nl" that are required to output UID and GID values using "%u" format (i.e. as unsigned decimal integers). Now that POSIX.1 and POSIX.2 are being merged into a single standard, it would make sense to remove this anomaly by requiring uid_t and gid_t to be integer types. The same applies to nlink_t ("ls -l" uses %u). Also, if uid_t and gid_t are changed to integer types then id_t should be as well (since pid_t is already). I realise it is debatable whether this change is in scope. I believe it is, since it addresses a discrepancy between two base documents. In any case, if the change is considered to be out of scope, it can easily be brought into scope by filing a POSIX interp request. If it is rejected for being out of scope, please give an indication of whether it would be accepted if resubmitted after it has been brought into scope. Action: Add the following line after line 13255 : * nlink_t, uid_t, gid_t and id_t shall be integer types _____________________________________________________________________________ My impression is they probably left it a bit under specified accidentally before that change. Collin [1] https://www.opengroup.org/austin/docs/austin_74.txt