我正在处理gpio中断。我有一个在"/sys/class/gpio/gpio38/value"目录下的文件。每当属性value发生变化时,我希望得到通知。那么我该如何在用户空间实现这一点呢?鉴于我已经收集了信息,可以使用select()、poll()或epoll()。对于本应用程序来说,哪种是正确的?还是请您建议我是否可以使用/proc/irq之类的东西。谢谢 :)
/sys/class/gpio/gpio42/value
),然后在其上阻塞。fd_set exceptfds;
int res;
FD_ZERO(&exceptfds);
FD_SET(gpioFileDesc, &exceptfds);
res = select(gpioFileDesc+1,
NULL, // readfds - not needed
NULL, // writefds - not needed
&exceptfds,
NULL); // timeout (never)
if (res > 0 && FD_ISSET(gpioFileDesc, &exceptfds))
{
// GPIO line changed
}
select()
、pselect()
、poll()
或epoll()
。[poll()
及其同类实际上根本不进行轮询] - markoselect()
来检测行的变化。 - marko