10

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

[18594.595747] Enqueue 3 
[18594.595748]  queue :  
[18594.595751] 2 
[18594.595751] 1 
[18594.595752] 3 

但我想在没有换行符的情况下打印它:

[8594.595747] Enqueue 3 
[18594.595748]  queue : 2 1 3

这是我的代码的一部分:

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

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

4

2 回答 2

17

要防止新行开始,请使用KERN_CONT

printk(KERN_ALERT "self destruction commences in ");
printk(KERN_CONT "%d", time_remaining);
printk(KERN_CONT " minutes\n");
于 2015-03-30T08:21:28.120 回答
0

打印调试

printk(KERN_ERR "Doing something was ");
/* <100 lines of whatever>*/
if (success)
   printk(KERN_CONT "successful\n");
else
   printk(KERN_CONT "NOT successful\n");

日志打印应该是安全的:SFP 与单 CPU。

于 2015-04-03T09:51:07.147 回答