imprimir - sintaxis de printf y scanf
¿Cuál es el especificador de printf correcto para imprimir pid_t? (2)
No hay tal especificador. Creo que lo que estás haciendo está bien ... podrías usar un tipo int aún más amplio, pero no hay implementación donde pid_t sea más grande que largo y probablemente nunca lo sea.
Actualmente estoy usando un molde explícito para long y usando %ld para imprimir pid_t , ¿hay algún especificador como %z para size_t para pid_t ?
Si no, ¿cuál es la mejor manera de imprimir pid_t ?
Con los tipos de enteros que carecen de un especificador de formato coincidente como en el caso de pid_t , pero con signo conocido, se pid_t a la coincidencia más amplia de tipo e impresión firmados. Si no se conoce la firma, transfórmalo al tipo sin signo más amplio.
// C99
#include <stdint.h>
pid_t pid = foo();
printf("pid = %jd/n", (intmax_t) pid);
// pre-C99
pid_t pid = foo();
printf("pid = %ld/n", (long) pid);