如何在Linux内核中单行打印消息

jij*_*iji 9 line linux-kernel printk

我正在内核中创建一个简单的enque/deque程序.我想在内核中打印消息,这就是我得到的:

[18594.595747] Enqueue 3 
[18594.595748]  queue :  
[18594.595751] 2 
[18594.595751] 1 
[18594.595752] 3 
Run Code Online (Sandbox Code Playgroud)

但我想打印这个没有换行符:

[8594.595747] Enqueue 3 
[18594.595748]  queue : 2 1 3
Run Code Online (Sandbox Code Playgroud)

这是我的代码的一部分:

   printk(KERN_ALERT "Enqueue %d \n queue :  ", a);
   rear++;
   for(i = front; i<rear; i++)
      printk(KERN_ALERT "%d ", queue_test[i]);  
Run Code Online (Sandbox Code Playgroud)

简而言之,我想在内核中打印一行消息.但如果我使用printk,它会自动更改行.如何在一行中打印消息?

CL.*_*CL. 11

要阻止启动新行,请使用KERN_CONT:

printk(KERN_ALERT "self destruction commences in ");
printk(KERN_CONT "%d", time_remaining);
printk(KERN_CONT " minutes\n");
Run Code Online (Sandbox Code Playgroud)