While pid_t is typedef'd to int on GNU/Linux platforms, it is a long on Solaris 11:
$ uname -a SunOS gcc-solaris11 5.11 11.3 sun4u sparc SUNW,SPARC-Enterprise $ echo '#include <sys/types.h>' | gcc -E - | grep -w pid_t typedef long pid_t; There, one would need the %ld format when printing a pid_t's value. Checking in gnulib, I only see it handled as %u or %d. Do we have an issue here? At least using both %u and %d looks inconsistent. Thanks & have a nice day, Berny