Что означает %.6d в:
%.6d
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
Это опечатка?
Кажется, %.6d совпадает с %6d.
%6d
В формате .precision для целочисленных спецификаторов (d, i, o, u, x, X) точность определяет минимальное количество записываемых цифр. Если записываемое значение короче этого числа, результатом будет с добавлением ведущих нулей . Значение не усекается, даже если результат длиннее.
Ширина (здесь 6) определяет минимальное количество символов для печати. Если значение для печати короче этого числа, результатом будет с пробелами . Значение не усекается, даже если результат больше.
Пример:
printf("%.6d\n%6d",1,1);
выходы:
000001 1
Первый будет дополняться нулями, второй - пробелами.
#include <stdio.h> int main(void) { printf ("%.6d\n", 123); printf ("%6d\n", 123); return 0; }
Создает следующий вывод,
000123 123