dev_err()
是Linux內核中的一個宏,用于記錄設備驅動程序中的錯誤。它通常被用來輸出與設備相關的錯誤信息到系統日志中。dev_err()
宏的參數如下:
fmt
: 格式化字符串,類似于C語言中的printf()
函數的格式化字符串。它包含了要輸出的錯誤信息的格式。...
: 可變參數列表,包含了與格式化字符串相對應的實際參數。這些參數可以是整數、指針或其他類型的數據。dev_err()
宏的實現可能會因內核版本和具體的設備驅動程序而有所不同,但一般來說,它的基本用法如下:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/device.h>
static struct device my_device = {
.name = "my_device",
};
static int __init my_driver_init(void) {
printk(KERN_ERR "my_device: Failed to initialize device\n");
return -ENOMEM;
}
static void __exit my_driver_exit(void) {
printk(KERN_ERR "my_device: Device unloaded\n");
}
static struct driver my_driver = {
.name = "my_driver",
.init = my_driver_init,
.exit = my_driver_exit,
};
module_driver(my_driver, device_register, device_unregister);
在這個例子中,my_driver_init()
函數在設備驅動程序初始化失敗時調用了`