我通过使用ioctl()从应用程序调用驱动程序函数。通过使用日志,我发现我的内核代码首先执行。例如,
在我的申请中
printf(“呼叫司机”); 的ioctl();
在我的驱动程序中
printk(“司机叫”);
当我执行我的代码时,首先打印“Driver called”然后“Calling Driver” 我有什么理由吗?
答案 0 :(得分:0)
默认情况下,stdout
流被缓冲,数据仅在换行符(或执行结束)后显示。在这种情况下,显示是在ioctl
通话后完成的。
您可以在fflush
来电后使用printf
强制显示。
printf("Calling Driver");
fflush(stdout);
ioctl();
有关详细信息,请参阅these answers。