Linux 中 Printk() 和 Printf() 的区别

Dar*_*nus 5 linux operating-system

我是 Linux 操作系统的新用户,目前正在学习我的方法。我正在研究操作系统调试和相关主题,作为基本的调试工具,建议打印出有关系统状态的某些信息。

这个任务可以由所提到的功能来完成printf(),也printk()和发现为“k”代表的内核,是某种类型的打印功能的“原始”的形式。这printf()也是由 C 库而不是内核库给出的(不完全确定这的含义)。

我想知道除了明显的优势之外,使用它们中的任何一个是否还有其他优势(printk()鉴于printf()尚不可用,因此在启动的早期阶段使用)。使用它们两个时可以获得相同的信息吗?

The*_*sor 5

printk()是一个内核级函数,它能够打印出不同的日志级别,如 中定义的<linux/kernel.h>

printf()将始终打印到文件描述符 -STD_OUT

printk()和之间的主要区别printf()是前者指定日志级别的能力。内核使用日志级别来决定是否将消息打印到控制台。内核在控制台上显示日志级别低于指定值的所有消息。

更多信息请点击这里