我正在阅读Linux设备驱动程序,并注意到您可以使用printk打印当前行和文件.这是如何实现的?Linux如何跟踪包含printk语句的行?我还没有在用户空间中编写的"普通C代码"中看到类似的功能.
这是LDD3的一个例子:
printk(KERN_DEBUG "Here I am: %s:%i\n", __FILE__, __LINE__);
Run Code Online (Sandbox Code Playgroud)
编辑:正如piokuc所说,这些实际上是标准的宏.GCC文档在这里描述它们:http://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
__CODE__为每一行设置并由预处理器替换为当前行,__CODE__为每个文件设置.