[问题] readlock

楼主: SahsB (SahsB)   2015-12-16 16:38:15
开发平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
下面有程式码
想检查档案是不是 locked 但输出不符合预期
喂入的资料(Input):
档名123的档案
预期的正确结果(Expected Output):
r
错误结果(Wrong Output):
u
程式码(Code):(请善用置底文网页, 记得排版)
http://codepad.org/jS57a2Y4
补充说明(Supplement):
write lock 可以正确输出 w
但 read lock 就是无法输出 r
不知道是哪里出错@@
作者: HolyBugTw (HolyBug)   2015-12-16 16:55:00
你有两行code一模一样lock.l_type = F_RDLCK; 为啥check lock2?
楼主: SahsB (SahsB)   2015-12-16 17:08:00
我是用lock来上set lock 用lock2来get lock
作者: HolyBugTw (HolyBug)   2015-12-16 17:20:00
嗯...我知道我问了个蠢问题...Orz会不会是你用同一个process才会有这问题?拆开来两个执行档试试看如何?我试过了和你状态一样...等高人指教了...
作者: yvb   2015-12-16 21:05:00
请 man fcntl 看 F_GETLK 的说明. 补充: F_RDLCK 为 0.另外,如同楼上上所说,同行程可随意变换,要拆成两行程来测试.
作者: HolyBugTw (HolyBug)   2015-12-17 09:58:00
哈,我测试他是return 2...所以才说测出一样的问题所以才想说是不是还有什么菱角?
作者: jaid (jaid)   2015-12-18 16:07:00
同Process不能GET自己的LOCK,会盖过去

Links booklink

Contact Us: admin [ a t ] ucptt.com