Simple differences - differing types

Differing types in OS typedefs
E.g. width and signedness of gid_t
Beware of signed vs. unsigned issues here

Solution:
Avoid use as array index or in pointer arithmetic
If you must, then sanitise first (ensure integers are >= 0)
Avoid annoying warnings in printf() conversions by casting up to a longer type (e.g. long)
