Re: printk of non NULL terminated strings ?

From: Rasmus Villemoes
Date: Thu Jul 09 2020 - 09:30:44 EST


On 09/07/2020 15.26, Joakim Tjernlund wrote:
> On Thu, 2020-07-09 at 14:56 +0200, Andreas Schwab wrote:
>> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>>
>>
>> On Jul 09 2020, Joakim Tjernlund wrote:
>>
>>> Is there a format (or other function) that lets me
>>> print strings without an \0 terminator using an explicit length arg instead?
>>
>> Use the precision.
>
> Looking at that now but have a hard time figuring how to use it, can you give me an example?

Exactly as you'd do in userspace:

printf("%.*s\n", len, buf)

Of course, vsnprintf() will still stop if it encounters a nul byte
within those first len bytes in buf. And you need len to have type int,
so you may need a cast if you have a size_t or ssize_t or whatnot.

Rasmus