为什么close设备后,再打开还是错误呢?

nosilence_2007 2011-03-28 03:27:27
hi everyone,

我destroy函数已经调研了close(fd)
并且确定close(fd)被调用了,为什么

close之后再open(fd)会失败呢?

失败的信息是:

:Cannot open /dev/video0 (error : Device or resource busy)
...全文
194 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jounehou 2011-10-11
  • 打赏
  • 举报
回复
资源没有释放完吧。。
ryangio 2011-09-29
  • 打赏
  • 举报
回复
close()之前可能还有对文件的操作,你延时长点
nosilence_2007 2011-09-05
  • 打赏
  • 举报
回复
已经解决了 原来是虽然释放了 但是这个节点的buffer还在被占用

不过不知道为什么 为什么还有buffer被占用 destroy 就不能返回个错误值!
时间一粒 2011-03-29
  • 打赏
  • 举报
回复
open()除了访问文件的路径,还有文件的访问模式参数的吧?有错误可能是你的文件已经不存在,试试
open("/dev/video0",O_WRONLY|O_CREAT)
haixuelang 2011-03-29
  • 打赏
  • 举报
回复
看看close的返回值,是否close成功。
steven_miao 2011-03-29
  • 打赏
  • 举报
回复
驱动中有可能open中的资源申请并没有在close时释放
louyong0571 2011-03-29
  • 打赏
  • 举报
回复
是不是要先ioctl 啊?
时间一粒 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 nosilence_2007 的回复:]
close 是和原来一样啊 状态是 Unknown error: 0 应该是没错啊

我sleep 1s 之后,然后再打开,还是device busy,
[/Quote]
直接上代码吧
nosilence_2007 2011-03-29
  • 打赏
  • 举报
回复
close 是和原来一样啊 状态是 Unknown error: 0 应该是没错啊

我sleep 1s 之后,然后再打开,还是device busy,
cr4315 2011-03-29
  • 打赏
  • 举报
回复
过一会在打开会这种提示么?
李亚超 2011-03-28
  • 打赏
  • 举报
回复
看看close的返回状态
sunny3106 2011-03-28
  • 打赏
  • 举报
回复
close的返回值是多少?

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧