为什么驱动程序代码首先执行?

时间:2012-12-31 08:46:16

标签: linux-device-driver

我通过使用ioctl()从应用程序调用驱动程序函数。通过使用日志,我发现我的内核代码首先执行。例如,

在我的申请中

printf(“呼叫司机”); 的ioctl();

在我的驱动程序中

printk(“司机叫”);

当我执行我的代码时,首先打印“Driver called”然后“Calling Driver” 我有什么理由吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,stdout流被缓冲,数据仅在换行符(或执行结束)后显示。在这种情况下,显示是在ioctl通话后完成的。

您可以在fflush来电后使用printf强制显示。

printf("Calling Driver");
fflush(stdout);
ioctl();

有关详细信息,请参阅these answers

相关问题