Jee*_*tel 3 c linux linux-kernel printk
在Linux应用程序级别上,所有printf消息都会转到stdout所有错误消息stderr.哪里
stderr通常是无缓冲的
stdout是行缓冲的
那么kernel space当我们使用printk() 或不使用KERN_ERR和其他级别指定宏时,这些消息是如何缓冲的?
不会dmesg有任何单独的机制?
所有这一切printk()确实是简单的几个字节添加到内存环形缓冲区(如果缓冲区年底达到环绕).因此,说它是否是行缓冲是没有意义的 - 这只是不适用.
而且,在用户空间中stdout,stderr有意义的是,在内核中并非如此printk():它不会写入,stdout因为内核中没有这样的东西.
当然,有些东西负责将这个环形缓冲区的内容实际传递给用户 - 无论是在串行控制台上打印它还是用它来检索它dmesg,这通常会寻找LF字符来分隔线条.
| 归档时间: |
|
| 查看次数: |
1557 次 |
| 最近记录: |