Solaris 动态跟踪指南

宽度和精度说明符

可将最小字段宽度指定为任意标志说明符后跟十进制数字字符串,在此情况下,字段宽度将设置为指定的列数。字段宽度还可以指定为星号 (*),在此情况下,将访问 int 类型的另一参数来确定字段宽度。例如,要在字段中列显整数 x(由 int 变量 w 的值确定),应编写如下 D 语句:

printf("%*d", w, x);

字段宽度也可使用 ? 字符来指定,以指定应根据设置地址格式(该地址在操作系统内核的数据模型中使用十六进制)所需的字符数来设置字段宽度。如果内核使用 32 位数据模型,则宽度设置为 8,如果内核使用 64 位数据模型,则宽度设置为 16。

转换的精度可指定为跟在句点 (.) 之后的十进制数字字符串,或者跟在句点之后的星号 (*)。如果使用星号来指定精度,则会访问转换参数之前的类型为 int 的另一参数来确定精度。如果宽度和精度都指定为星号,则对应转换的 printf() 参数的顺序应按以下顺序显示:宽度、精度、值。