有没有一种方法可以检测Linux是否在C中插入了CD?
我尝试了SIGIO信号:
fd = open("/dev/cdrom", O_RDWR | O_NONBLOCK );
struct sigaction saio;
saio.sa_handler = signal_handler_IO;
saio.sa_flags = 0;
saio.sa_restorer = NULL;
sigaction(SIGIO,&saio,NULL);
fcntl(fd, F_SETFL, FNDELAY);
fcntl(fd, F_SETOWN, getpid());
fcntl(fd, F_SETFL, O_ASYNC );
但是永远不会调用函数“signal_handler_IO”。
有可能这样做吗?
最佳答案
您是否尝试使用poll()
或任何类似功能? (epoll/epoll_wait/select/...)
https://man7.org/linux/man-pages/man2/poll.2.html