функція printk(). для друк основних повідомлень на консолі, ми можемо використовувати метод printk(). Синтаксис printk() подібний до стандартного printf() у C, ви можете надати або рядковий літерал, або рядок формату, за яким слідує одна або більше змінних для друку.
Основна відмінність між printk() і printf() полягає в тому можливість першого вказувати рівень журналу. Ядро використовує рівень журналу, щоб вирішити, чи друкувати повідомлення на консолі. Ядро відображає на консолі всі повідомлення з рівнем журналу, нижчим за вказане значення.
Усі повідомлення printk() є друкується в буфер журналу ядра, який є кільцевим буфером, експортованим у простір користувача через /dev/kmsg. Звичайним способом його читання є використання dmesg. Рівень журналу визначає важливість повідомлення.
Він діє як інструмент налагодження для програмістів ядра, яким потрібна ця функція для реєстрації повідомлень ядра. Прототип функції printk: int printk(const char *fmt, …); Стандартна бібліотека C та її функція printf недоступні в режимі ядра, тому потрібна printk .
Printk, викликаний у функції init, використовує KERN_WARNING, який є рівень журналу та менше 6 це рівень журналу консолі, тому його слід побачити на екрані. Printk, який використовується у функції виходу, це KERN_INFO, який має рівень журналу 6, такий самий, як і рівень журналу консолі, і, отже, не повинен бути видимим на екрані.
функція printk(). Для друку базових повідомлень на консолі, ми можемо використовувати метод printk(). Синтаксис printk() подібний до стандартного printf() у C, ви можете надати або рядковий літерал, або рядок формату, за яким слідує одна або більше змінних для друку.