printk() is the
kernel-
space version of
printf, whose
output goes to the
console. There is also
console_print(), which is more like
puts and thus more
efficient in some cases (hint hint, resc's example should have used console_print!!). The "
urgency" is actually another
string, and the compiler will
concatinate it and your
format string into one.
Similarly, there is also a kernel-space sprintf implementation.
Oh, and printk() can be really easy to
overflow: on my
kernel, at least, the
buffer used is only 1024 bytes, and 3 of those are used for the urgency. And it won't do a bounds check. Short messages only.