我找到了以下一行:
asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)
我想知道%.*s
答案 0 :(得分:4)
%.*s
格式表示“使用 n 字符的字段宽度打印字符串,其中 n 从下一个参数中读取。”
所以在这里,它打印buffer
,宽度为size * rxed
个字符。 (必要时用空格填充)
答案 1 :(得分:2)
我强烈建议您阅读手册......
格式字符串中的 .*
表示:
未在格式字符串中指定precision,而是在必须格式化的参数之前的附加整数值参数。
可以看到详细信息here。
所以你没有提供任何细节,但是如果size * rxed
的结果是5,那么你可以这样做:
asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer)
或
asprintf(&c, "%s%5s", *msg_in, buffer)
达到同样的效果。