我使用printk作为内核打印代码。我要使用'\r' (回车)打印行清除。
例:
printk("hello");
-> : hello
printk("\r .....");
-> : ....但在使用\r时,它不起作用,只是打印出奇怪的字符。
char input;
if(input=='\b')
printk("\r");
else
printk("%c",input);用错了吗?如何在内核中使用回车?在这种情况下,我不能使用printk吗?
发布于 2017-09-18 07:07:05
\r不清除行,如果这是您所要求的,而是返回到行的开头,并打印以前打印过的内容。
printf("Hello \r123")
会打印
123llo
编辑:你可以把空格写到行里。
printk(KERN_CONT,"\r%*c\r, MAX_STRING_LENGTH, 32);KERN_CONT不转到新行,而是在同一行上继续。
首先\r返回行的开头
%*c根据字符串的长度打印空格数
最后\r再次返回到行的开头。
您可能希望编写自己的方法来返回字符串长度,而不是使用MAX_STRING_LENGTH。
https://stackoverflow.com/questions/46272087
复制相似问题