欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
printk打印不能顯示到終端的問(wèn)題
對于做嵌入式或者熟悉linux內核的人來(lái)說(shuō),對printk這個(gè)函數一定不會(huì )感到陌生。printk相當于printf的孿生姐妹,她們一個(gè)運行在用戶(hù)態(tài),另一個(gè)則在內核態(tài)被人們所熟知。
  【原型】
  int printk(const char * fmt,…);
  【示例】
  與大多數展示printf的功能一樣,我們也用一個(gè)helloworld的程序來(lái)演示printk的輸出:
  編寫(xiě)一個(gè)內核模塊:
  #include<linux/kernel.h>
  #include<linux/module.h>
  #if CONFIG_MODVERSIONS==1
  #define MODVERSIONS
  #include<linux/modversions.h>
  #endif
  MODULE_LICENSE("GPL");
  int init_module()
  {
  printk("hello.word-this is the kernel speaking\n");
  return 0;
  }
  void cleanup_module()
  {
  printk("Short is the life of a kernel module\n");
  }
  保存為文件hello.c
  編寫(xiě)一個(gè)Makefile:
  CC=gcc
  MODCFLAGS:=-O6 -Wall -DMODULE -D__KERNEL__ -DLINUX
  hello.o:hello.c /usr/include/linux/version.h
  $(CC) $(MODCFLAGS) -c hello.c
  echo insmod hello.o to turn it on
  保存為文件Makefile
  執行make
  我們可以看到生成了一個(gè)hello.o的內核模塊,我們想通過(guò)這個(gè)模塊在插入內核的時(shí)候輸出
  "hello.word-this is the kernel speaking"
  這樣一條信息。
  然后我們開(kāi)始:
  [root@localhost root]# insmod hello.o
  [root@localhost root]#
  并沒(méi)有輸出任何消息。why?
  這也是printf和printk的一個(gè)不同的地方
  用printk,內核會(huì )根據日志級別,可能把消息打印到當前控制臺上,這個(gè)控制臺通常是一個(gè)字符模式的終端、一個(gè)串口打印機或是一個(gè)并口打印機。這些消息正常輸出的前提是──日志輸出級別小于console_loglevel(在內核中數字越小優(yōu)先級越高)。
  沒(méi)有指定日志級別的printk語(yǔ)句默認采用的級別是 DEFAULT_ MESSAGE_LOGLEVEL(這個(gè)默認級別一般為<4>,即與KERN_WARNING在一個(gè)級別上),其定義在linux26/kernel/printk.c中可以找到
  日志級別一共有8個(gè)級別,printk的日志級別定義如下(在include/linux/kernel.h中):
  #define KERN_EMERG    0
  #define KERN_ALERT     1
  #define KERN_CRIT       2
  #define KERN_ERR        3
  #define KERN_WARNING  4
  #define KERN_NOTICE    5
  #define KERN_INFO       6
  #define KERN_DEBUG     7
  現在我們來(lái)修改hello.c程序,使printk的輸出級別為最高:
  printk("<0>""hello.word-this is the kernel speaking\n");
  然后重新編譯hello.o,并插入內核:
  [root@localhost root]# insmod hello.o
  [root@localhost root]#
  Message from syslogd@localhost at Sat Aug 15 05:32:22 2009 ...
  localhost kernel: hello.word-this is the kernel speaking
  hello,world信息出現了。
  其實(shí)printk始終是能輸出信息的,只不過(guò)不一定是到了終端上。我們可以去
  /var/log/messages這個(gè)文件里面去查看。
  如果klogd沒(méi)有運行,消息不會(huì )傳遞到用戶(hù)空間,只能查看/proc/kmsg
  通過(guò)讀寫(xiě)/proc/sys/kernel/printk文件可讀取和修改控制臺的日志級別。查看這個(gè)文件的方法如下:
  #cat /proc/sys/kernel/printk 6 4 1 7
  上面顯示的4個(gè)數據分別對應控制臺日志級別、默認的消息日志級別、最低的控制臺日志級別和默認的控制臺日志級別。
  可用下面的命令設置當前日志級別:
  # echo 8 > /proc/sys/kernel/printk
  這樣所有級別<8,(0-7)的消息都可以顯示在控制臺上. 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
printk 使用方法
linux內核的打印printk的級別
/proc/sys/kernel/printk
Linux內核常用調試方法
linux設備驅動(dòng)第二篇:構造和運行模塊
printk()函數的使用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久