问题先放在这里,俺去research有人先回答了就给分:D:D
回复(7) 2003-07-24 09:00 来自版块 - LINUX&UNIX核心开发
表情
jason.gao分先给了,如有更好的建议我们可以继续,尽管目前不是很着急解决这个问题。 研究嘛 :D (2003-08-01 10:32)
jason.gao呵呵,elegant, cheetah说的是一般情况,我的这个情况好像有点特殊,这是我开始没想到的。super_hzh说得有点对路了。 看了一下,肯定是不能同时open两个用于read image的,windows下也是这样。但我现在并不要那样,而是一个read image...(2003-08-01 10:26)
super_hzh对不起,问题好像没说清楚,这个问题比你想像中的基本。 我只需要两个程序都可以 open 它,但现在的情况是 第一个 open后,第二个程序 open 时会出现 resource busy 的错误。 我看了一下日志,第二次的 open 好像还没有调用到 driver 的...(2003-07-31 11:44)
cheetah如果在一个时间只允许一个进程打开一个设备需要在驱动中进行处理, 处理的办法通常是在驱动的设备的抽象出来的数据结构中设置一个计数或者标志位, 然后在open调用中更改它的值,并且加以判断,如果已经打开的设备就打印complain并且退出, 如果要想多个进程同时打开一个设备...(2003-07-30 14:23)
jason.gao对不起,问题好像没说清楚,这个问题比你想像中的基本。 我只需要两个程序都可以 open 它,但现在的情况是 第一个 open后,第二个程序 open 时会出现 resource busy 的错误。 我看了一下日志,第二次的 open 好像还没有调用到 driver 的...(2003-07-25 09:00)
elegant其实多个进程同时打开device,如果不需要互斥的话,基本没有多大的关系,当然,如果你的device里面有互斥的操作的话,就要注意了。同时,在freebsd里面好像有一个宏,是用于在打开device时自增和自减的,属于原子操作,可以参考一下。 另外,如果你的设备是动态加载和卸载...(2003-07-25 07:59)
jason.gao还是跟调用有关?但我看标志里(O_RDWR之类)里没有像windows的共享/独占之类呀 或者其它?mknod有没有关? :(.。。。 (2003-07-24 11:25)

返回顶部