本帖最后由 guozhengang630 于 2013-2-16 14:56 编辑
系统ubuntu12.06
代码如下:
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <linux/videodev2.h>
int main(void)
{
int camera_fd;
if(camera_fd=open("/dev/video0", O_RDWR | O_NONBLOCK, 0)<0)
{
printf("open error");
return camera_fd;
}
printf("camera_fd=%d\n",camera_fd);
struct v4l2_capability cap;
if (ioctl(camera_fd, VIDIOC_QUERYCAP, &cap) == -1)
{
perror("Error get device informaiton");
printf("errno=%d\n\r",errno);
return (errno);
}
问题:调用ioctl时,返回EINVAL /* Invalid argument */
open 没有问题,请问下这个问题怎么解决?谢谢摄像头为UVC摄像头
|