将cd插入C时的信号

问题描述 投票:1回答:1

有没有一种方法可以检测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”。

是否有可能这样做?

c linux signals drive cd
1个回答
0
投票

您是否尝试使用poll()或任何类似功能? (epoll / epoll_wait / select / ...)

https://man7.org/linux/man-pages/man2/poll.2.html

© www.soinside.com 2019 - 2024. All rights reserved.