printk資訊列印到指定檔案 終端 網路

2021-06-14 18:52:57 字數 1589 閱讀 2128

有的時候除錯核心程式,經常要將資訊列印到其他地方如指定檔案或終端還有網路,  網路的話dreanice版主寫過個netconsole我這裡就不說了...

列印到檔案:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define my_file "/root/logfile"

char buf[128];

struct file *file = null;

static int __init init(void)

sprintf(buf,"%s", "the messages.");

old_fs = get_fs();

set_fs(kernel_ds);

file->f_op->write(file, (char *)buf, sizeof(buf), &file->f_pos);

set_fs(old_fs);

return 0;

}static void __exit fini(void)

module_init(init);

module_exit(fini);

module_license("gpl");

複製**

列印到終端:

#include

#include

#include

#include

#include

module_license("gpl");

module_author("mq110");

static void print_string(char *str)

}static int __init print_string_init(void)

static void __exit print_string_exit(void)

module_init(print_string_init);

module_exit(print_string_exit);

複製** 3.

修改一下/etc/syslog.conf 檔案

#kern.*       /dev/console

你列印的東西可能是某個級別的資訊。比如說debug,這用printk 可以控制 。

那麼就寫程

kern.debug /var/log/kern_debug.log

-------------------------

printk(kern_alert "hello, world\n"); 

對應/etc/syslog.conf 中的

kern.alert                      /kernel.txt

實驗成功,修改後要執行

server syslogd restart 重啟日誌服務。

此方法等於用日誌服務幫你做這個事情。該資訊用

dmesg 命令也可以看到。

**在centos5.3   2.6.18上測試過了

RHEL 6 8 printk列印到虛擬終端

linux核心通過 printk 輸出的資訊具有日誌級別,核心中共提供了八種不同的日誌級別,在 linux kernel.h 中有相應的巨集對應。define kern emerg 0 system is unusable define kern alert 1 action must be tak...

如何將控制台資訊列印到指定檔案中?

首先建立列印流物件 printstream printstream new printstream filepath 然後將流物件交給系統輸出 system.setout printstream 最後,任意的system.out.print 輸出的內容都會列印在filepath下,控制台不再顯示列印...

把核心中的資訊列印到檔案

1.include include include include include include include include include define my file root logfile char buf 128 struct file file null static int in...