In Nim, a cint is (almost?) always a 32 bit signed integer, whereas an int is an integer whose size is equal to that of a pointer (32 bits on x86 architectures, and 64 bits on x86_64 architectures).
If an int is used in the posix modules, then either the procedure signature varies depending on architecture, or the procedure signature is wrong.