如何在printk中使用回车

时间:2017-09-18 05:21:04

标签: c kernel

我使用printk作为内核打印代码。 我希望使用slice3(回车)清除printk行。

前:

'\r'

但是在使用\ r时,它不起作用,只打印奇怪的角色。

printk("hello");

-> : hello

printk("\r .....");

-> : ....

使用它是错误的方法吗?如何在内核中使用回车? 在这种情况下我不能使用 char input; if(input=='\b') printk("\r"); else printk("%c",input); 吗?

1 个答案:

答案 0 :(得分:0)

\ r \ n不会清除该行,如果这是您要求的,而是返回到行的开头并打印之前打印的内容。

printf("Hello \r123")

会打印

123llo

编辑: 你可以在这一行写空格。

printk(KERN_CONT,"\r%*c\r, MAX_STRING_LENGTH, 32);

KERN_CONT不会转到新行,而是继续在同一行

首先\ r \ n返回到行的开头

%* c根据字符串的长度

打印空格数

Last \ r再次返回到行的开头。

您可能希望编写自己的方法来返回字符串长度,而不是使用MAX_STRING_LENGTH