大家好,我是基于2410和linux2.4.18做的IIC驱动,是将一个IIc适配器挂载上linux上现成得IIC总线上得,适配器已经成功挂载上去了,应用程序进行read操作时返回成功,而进行write的时候总是返回错误,不能进入我IIC驱动中写(write)的代码,我在应用程序中查看错误变量errno时,读取的值是9(EBADF),表示文件句柄非有效,或是该文件已经关闭,但是我read时,用的也是该句柄,能成功进入我驱动里读的代码! 而且更奇怪的是,我直接用echo 999 > /dev/i2c/0进行写操作时,也能成功进入驱动中的写代码!而用系统调用write会发生问题,这是为何呢,望大侠指点迷津! 读函数很简单的一个: if((ret=write(fd,buf,8))>0)printf("write is successful
"); else printf("ret = %d,errno = %d
",ret,errno); |