繁体   English   中英

如何在printk中使用回车

[英]How to use carriage return in printk

我将printk用于内核打印代码。 我想用'\\r' (回车)来清除printk行。

例如:

printk("hello");

-> : hello

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

-> : ....

但是在使用\\ r时,它不起作用,仅打印奇怪的字符。

    char input;
    if(input=='\b')
    printk("\r");
    else
    printk("%c",input);

这是错误的使用方式吗? 以及如何在内核中使用回车? 我不能在这种情况下使用printk吗?

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

printf("Hello \\r123")

会打印

123llo

编辑:您可以只在行中写空格。

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

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

第一个\\ r返回到行的开头

%* c根据字符串的长度打印空格数

最后一个\\ r再次返回到行的开头。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM