我编写了一个从/ dev / video0捕获视频的程序。 (打开VLC即可)。 我使用v4l2 api(在http://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html)
当init设备,函数调用 ioctl(fd,VIDIOC_QUERYCAP,& cap)没有返回时,它会阻止我的程序。
if (-1 == xioctl (fd, VIDIOC_QUERYCAP, &cap))
{
if (EINVAL == errno)
{
fprintf (stderr, "%s is no V4L2 device\n", dev_name);
opened = false;
return false;
} else
{
return errno_exit("VIDIOC_QUERYCAP");
}
}
我必须杀死这个过程。之后,我再次在VLC中打开/ dev / video0,VLC无法播放视频,直到我重新启动电脑。
如何为ioctl设置超时?谢谢!