当前位置:  技术问答>linux和unix

关于编写程序访问usb设备的问题,请高手解答

    来源: 互联网  发布时间:2016-11-06

    本文导语:  在网上找过很多相关的资料,始终没有找到解决的办法,希望有高人帮忙,下面描述下我的问题 我的ubuntu装在VM上,在里面,USB设备会自动挂载到/media/disk中,用df -hl命令查看得到如下结果: /dev/sdb 1.9G……(省略...

在网上找过很多相关的资料,始终没有找到解决的办法,希望有高人帮忙,下面描述下我的问题

我的ubuntu装在VM上,在里面,USB设备会自动挂载到/media/disk中,用df -hl命令查看得到如下结果:
/dev/sdb 1.9G……(省略中间可用空间等的显示) /media/disk

用ls -l /dev/sdb命令,得到如下结果:
brw-rw---- 1 root disk 8 , 16 2010-05-20 14:16 /dev/sdb

之后,写了个简单的test程序,来访问/dev/sdb,获得句柄,代码如下:
int main(void)
{
int fd = open("/dev/sdb", O_WRONLY|O_DIRECT);
printf("The file handle is:%xn",fd);
if(fd == -1) close(fd);
close(fd);

printf("The file is closed, open againn");

fd = open("/dev/sdb", O_WRONLY|O_DIRECT);
printf("The file handle is:%xn",fd);
if(fd == -1) close(fd);
close(fd);
}

好了,运行程序的时候,输出的结果为:
The file handle is:ffffffff
The file is closed, open again
The file handle is:ffffffff
说明文件打开失败,fd的值为-1。

后来自己觉得可能是权限问题,在运行test程序前,先执行了如下命令:
sudo chmod 777 /dev/sdb
然后用ls -l /dev/sdb命令查看,得到如下结果:(即为/dev/sdb的权限全开)
brwxrwxrwx 1 root disk 8 , 16 2010-05-20 14:16 /dev/sdb
之后再次运行test程序,输出结果如下:
The file handle is:3
The file is closed, open again
The file handle is:3
(注:不同机器得到的fd值可能不一样,但肯定不为-1)
这说明文件成功打开了,获得了正确的文件标示,本来以为大功告成,可是问题来了
我再次运行test程序的时候,文件又打开失败,结果和未修改权限一样……

后来查明原因,在使用sudo chmod 777 /dev/sdb修改权限后,运行test程序得到正确结果后,权限又会还原为之前的状态,即运行完test程序后,使用ls -l /dev/sdb查看,结果会自动还原为如下状态:
brw-rw---- 1 root disk 8 , 16 2010-05-20 14:16 /dev/sdb

这样一来,每次运行test程序,都要做权限修改~~

我不知道这个问题是不是跟mount方式有关,能不能有办法让usb挂载上去的时候,直接就是brwxrwxrwx的权限状态?我试过在mount的时候 -o 里面设置umask,dmask,fmask等参数,但是不奏效,希望有达人可以帮忙解决~
我在编写ubuntu下的一个程序,这个问题不解决,我后面的事都没法做了,希望知道的高手尽快帮我解答,谢谢

|
起码有两种方法

1.把用户加入disk组里。

2.使用udev规则,挂载的时候赋权限。

|
先su 
输入管理员密码再试试,还不行就不是权限问题了

    
 
 

您可能感兴趣的文章:

  • 各位高手:一个最简单的操作系统怎么编写??
  • 请教高手:如何用gnome/gtk编写托盘程序
  • linux 中用shell编写程序时遇到的一个问题,请高手指点!!!!
  • java调用C/C++编写的DLL文件问题,请有经验的高手指教?
  • 调查一下:编写Linux内核模块 驱动程序各位高手所用的编辑环境和调试工具
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • Linux 2.4.18 中编写的一段代码,请高手帮忙解释一下意思。。。。。。。。。。
  • 正在编写的一段程序出错,请高手进来看看。。。
  • 高分求skyeye.conf的编写方法,skyeye高手进
  • 我现在在编写一个在LINUX下运行的命令解释器,对于后台运行的命令方法有些不懂,请高手指点一下
  • 那位高手能告知在LINUX下,用C语言怎样编写进行目录操作的程序(详见内)?
  • 请教关于JAVA编写DOM的初级问题,望高手提鞋!!!
  • 编写ARM上Linux驱动程序出错,请教高手要写些什么结构
  • 关于linux makefile 的编写,哪位高手帮我看看下面的问题
  • LINUX 使用libx编写界面 如何创建Widget 实例的问题,请高手指点
  • linux下的socket并发服务器的编写问题,请高手指教
  • 编写的UNIX简单网络程序,但调了很久都不对,请高手帮我看看。谢谢!
  • ubuntu系统下用GTK编写C界面,请高手进来看看!跪求!!
  • 两道关于C语言的编程问题,自己有点思路,但是不知何处下手编写代码,请高手帮忙~
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编写 linux shell 有什么好的编写工具呢?
  • VB编写的DLL不能被JAVA调用,用C将VB编写的DLL包装起来,做成一个新的DLL;用C编写的DLL可以被JAVA调用,用JAVA再进行一层的包装,因为JAV
  • 用Qt3.1.4编写的程序,如何加入自己编写的另外一个动态库呀?诚恳指教!!
  • 如图 scsi <---> scsi controller <---> pci <---> cpu 如果我想对scsi编写驱动我该对哪个部分编写?
  • 用什么工具编写JSP,可以象用InterDev编写ASP一样方便快捷?
  • 编写程序如编写人生,有人和我的意见相同吗?
  • 请问用jsp编写程序,非要编写代码么?有没有什么象fontpage2000那样的工具,能够生成一些固定模板的工具?就是说不用全部都写的工具。望
  • 用jsp编写web程序到底和java serverlet编写web程序有和区别
  • socket中,从client端(用java编写的)传到server端(用c编写的)的字符串为何总多一个ASCII码为10的字符呀?
  • 如何用java编写一个NT平台下的标准服务?
  • 关于用vj编写sniffer一问。
  • Linux下如何编写脚本文件
  • java能不能编写单独运行的程序?
  • CSS属性参考手册 iis7站长之家
  • 用JAVA编写COM组件
  • 关于版本和bug管理的rule(规则)的编写
  • 在windows下可以用Code::Blocks编写linux程序吗?
  • 函数互相调用时Makefile编写
  • linux下用java编写邮箱客户端程序与在windows下有什么不同??
  • AIX下如何编写批处理命令和计划任务


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3