pr_info 和 printk 区别
时间: 2025-08-08 07:59:36 浏览: 4
`pr_info` 和 `printk` 是 Linux 内核中用于打印日志信息的函数,它们主要用于调试和信息输出。两者之间的主要区别在于日志级别和使用场景。
### 1. `printk`
- `printk` 是 Linux 内核中最基本的日志打印函数,类似于用户空间的 `printf`。
- 它支持指定日志级别(log level),通过宏定义来控制输出的优先级。
- 示例:
```c
printk(KERN_INFO "This is an info message\n");
```
其中 `KERN_INFO` 是日志级别之一。
### 2. `pr_info`
- `pr_info` 是 `printk` 的封装函数,提供了更简洁的接口,不需要手动指定日志级别。
- 它默认使用 `KERN_INFO` 级别,适用于输出一般的信息性日志。
- 示例:
```c
pr_info("This is an info message\n");
```
### 主要区别
| 特性 | `printk` | `pr_info` |
|------------------|-------------------------------------|----------------------------------|
| 日志级别 | 需要手动指定(如 `KERN_INFO`) | 默认使用 `KERN_INFO` |
| 可读性 | 相对复杂,需要关注日志级别 | 更简洁,适合信息性日志 |
| 使用场景 | 适用于所有日志级别需求 | 专门用于输出信息性日志 |
| 灵活性 | 更灵活,可以调整日志级别 | 固定级别,不够灵活 |
### 总结
- 如果你需要输出信息性日志(如模块加载、初始化等),推荐使用 `pr_info`。
- 如果需要更细粒度的日志控制(如警告、错误等),则使用 `printk` 并指定相应的日志级别。
---
阅读全文
相关推荐




















