read()的问题还是驱动文件的问题?
centos7上写了一个pcie板卡的驱动,open的文件是设备文件.下面是对这个卡进行读数据测试
open是没问题的,fd4返回为3,正常. read的时候,出错,返回值-1,errno22,意义:无效的参数,但是我看那三个参数没问题啊,求教高手,我是第一次写驱动,怀疑是驱动的问题,但是不肯定.
28 void rea()
29 {
30 int fd4 = open("/dev/nirlpk0",O_RDWR);
31 while(1)
32 {
33
34 char *buf = new char[1];
35 ssize_t readcount = read(fd4,buf,1);
36 cout<<"fd4= "<<fd4<<endl;
37 cout<<*buf<<endl;
38 delete buf;
39
40 if(readcount<0)
41 {
42 perror("read wrondgggg");
43 cout<<"readcount= "<<readcount<<endl<<"errno= "<<errno<<endl;
44 }
45 else
46 {
47 cout<<"read successsssssssss"<<endl;
48 }
49 }
50 close(fd4);
51 }