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);