我正在尝试制作一个需要为使用它的应用程序提供 select() 功能的字符驱动程序。据我所知,它是用 poll() 实现的。但我不能去这样做。有什么办法我可以做到这一点?这是我的应用程序。
int main()
{
int fd;
fd_set fdset;
struct pollfd ufds;
struct timeval time;
time.tv_sec = 2;
fd = open("/dev/char_dev" , O_RDWR );
ufds.fd = fd;
ufds.events = POLLIN | POLLPRI;
FD_ZERO( &fdset );
FD_SET( fd , &fdset );
//poll(&ufds, 1, 3500);
select( 1, &fdset, NULL, NULL,&time );
return 0;
}
这是我的内核模块的一部分。我只是想在 dmesg 中看到这条消息
unsigned int dc_poll( struct file *filp, poll_table *wait )
{
printk("*****select\n");
return 0;
}