正確的printf說明符,是那裏%z
爲size_t
爲pid_t
這樣的標記嗎?什麼是我目前使用一個顯式的長期使用<code>%ld</code>打印<code>pid_t</code>打印將爲pid_t
如果不是什麼最好的印刷方式pid_t
?
正確的printf說明符,是那裏%z
爲size_t
爲pid_t
這樣的標記嗎?什麼是我目前使用一個顯式的長期使用<code>%ld</code>打印<code>pid_t</code>打印將爲pid_t
如果不是什麼最好的印刷方式pid_t
?
沒有這樣的說明符。我認爲你正在做的事情很好......你可以使用更寬的int類型,但是沒有實現,pid_t比long更長,可能永遠不會。
不錯。如果您想使用自己的'pid_t'規範來自定義'printf',請查看此頁面:http://stackoverflow.com/questions/9260170/is-this-possible-to-customize-printf –
總數與os的位數有關的進程的數量?例如可以有更多的sizeof(int)? –
請參閱http://stackoverflow.com/questions/1922761/size-of-pid-t-uid-t-gid-t-on-linux ...無論OS位大小如何,pid_t通常都是32位。系統*可能有更大的系統,但我不會期望它。無論如何,長期以來都會有很大的安全性。 –
對於缺少匹配格式說明符的整數類型,與pid_t
一樣,但具有已知符號,轉換爲最寬匹配簽名類型和打印。如果符號未知,則轉換爲最寬的無符號類型。
// 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);
我正在越來越多。 %d hello.c:9:42:warning:format指定類型'long',但參數的類型爲 'pid_t'(又名'int')[-Wformat]當我嘗試ld –
@KorayTugay請注意以上字詞: 「我目前正在使用明確的演員陣容」。 –