当前位置: 技术问答>linux和unix
为什么我的select不能返回
来源: 互联网 发布时间:2016-01-28
本文导语: 驱动中 static unsigned int my_poll (struct file *file, struct poll_table_struct *wait) { return 1;; } 在应用程序中 if((e = select(setsize+1, &rfds, NULL, NULL, to)) > 0) { { printf("something"); } 为什么总是没有反应...
驱动中
static unsigned int my_poll (struct file *file, struct poll_table_struct *wait)
{
return 1;;
}
在应用程序中
if((e = select(setsize+1, &rfds, NULL, NULL, to)) > 0) {
{
printf("something");
}
为什么总是没有反应,不能打印出东西来,驱动中的poll函数有问题么?
static unsigned int my_poll (struct file *file, struct poll_table_struct *wait)
{
return 1;;
}
在应用程序中
if((e = select(setsize+1, &rfds, NULL, NULL, to)) > 0) {
{
printf("something");
}
为什么总是没有反应,不能打印出东西来,驱动中的poll函数有问题么?
|
poll中要设置当前设备的状态,可读还是可写,select如果是选择可读,那么驱动设置为可读就会返回,否则不会。而且poll函数不是这么写的,你具体找个例子看看。
|
是不是 超时啦 超时返回值是0 就没打印了
|
你的poll函数有问题
你得告诉应用程序什么时候可以返回
具体的你可以随便看个驱动里面
一般都需要调用poll_wait()以及返回设备当前状态
你得告诉应用程序什么时候可以返回
具体的你可以随便看个驱动里面
一般都需要调用poll_wait()以及返回设备当前状态
|
好问题