应用层获得SIGIO信号如何区分是kill_fasync(poll_in)或kill_fasync(poll_out)产生的
static ssize_t xxx_write(...)
{
...
echo "....">设备 完成写操作时发送信号
if(dev->async_queue)
kill_fasync(&dev->async_queue,SIGIO,POLL_IN);
}
static ssize_t xxx_read(...)
{
...
完成读设备操作时发送信号
if(dev->async_queue)
kill_fasync(&dev->async_queue,SIGIO,POLL_OUT);
}
以上是驱动中的读写两个函数,在应用程序中都会获得SIGIO信号
signal(SIGIO,xxx);xxx为处理函数
我的问题是,如何在应用程序中区分到底是读完成后产生的SIGIO信号,还是写完成后产生的
求高手教下怎么在接受信号后把读写分开
例如,写完成后产生SIGIO信号,进入处理函数,经过什么判断知道是写完成,我们就进行读操作
反之一样