当前位置:  技术问答>linux和unix

printf和printk的区别?

    来源: 互联网  发布时间:2016-12-19

    本文导语:  主要不明白他们都用在什么地方 有人说中断的时候不能用printf  写内核驱动代码的时候也不能用printf  这都是为什么呢?? printk在写驱动的时候就能使用呢? 请大家给点提示  | printf在...

主要不明白他们都用在什么地方

有人说中断的时候不能用printf 

写内核驱动代码的时候也不能用printf  这都是为什么呢??

printk在写驱动的时候就能使用呢?

请大家给点提示 

|
printf在内核中用不了,printk就是内核中的printf函数
在写驱动的时候在中断的上半部不要使用printk--因为printk太耗时...中断上半部需要快速返回!

|
1. printf是ANSI C库函数,user space用。 printk是linux kernel 函数,kernel space用。
2. 中断一般要尽量少做事,中断分上半部和下部部,下半部一般是软中断。printk是不可重入的函数。

|
LDD3 裡面有說:
1. printk 不支援浮點數 (float point)。
2. printk 可以設定降低呼叫 printk 的頻率,如果呼叫同一行 printk 太頻繁,你可以抑制掉一些重覆的 printk 訊息。
3. printk 是內核專用。

|
printf是不可重入的

|
内核用不了printf
printk不会睡眠,而且可以设置优先级,用的固定大小的环形buffer存储打印信息

|
print + kernel =  printk

|
printk是用在内核中的

|
printf只是c库中的函数
printk是内核专用的

|
printk 用在内核
printf 在用户模式

|
printk是内核自己实现的函数
printf是glibc实现的

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.io类console的类成员方法: printf定义及介绍
  • 为什么会我调试程序的时候出现“printf.c: 没有那个文件或目录. in printf.c“
  • java命名空间java.io类printstream的类成员方法: printf定义及介绍
  • UDP包何printf?
  • java命名空间java.io类printwriter的类成员方法: printf定义及介绍
  • Linux 中的printf、open、close
  • Python中类似printf的字符串格式化详解
  • [求解]关于printf 与 ++ --的疑惑
  • printf的静态库在哪??
  • Eclipse对printf()不能输出到控制台的快速解决方法
  • printf显示的问题.
  • printf的奇怪现象
  • linux printf文字编码设定?
  • 如何使用ar命令检查在标准的C库中收藏了多少与printf相关的函数
  • 如何在printf()中指定字段的宽度后,左端的用数字0而不用空格补全
  • 送分题,关于printf输出格式的问题。
  • 问个printf的问题
  • UART_printf在哪里?
  • printf到指定终端
  • ld 报undefined reference to `printf'求解决方法
  • printf的问题 为什么没有输出


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3