Chinaunix

标题: 多线程访问一个 fd, 会产生冲突吧? [打印本页]

作者: ydfgic    时间: 2010-08-17 18:47
标题: 多线程访问一个 fd, 会产生冲突吧?
lseek(fd, offset, SEEK_SET);
read(fd, foo, sizeof(foo));

可能这段代码会多线程访问,那么这里是不是 线程不安全??

还求教,我之前看到过一个api, 是可以不用lseek, 而是 read 的时候直接设置 一个 offset 便宜参数
忘了这个api的名字了,希望哪位大侠提示一下,万分感谢~!
那么这个api,是否是线程安全的呢?
作者: liwangli1983    时间: 2010-08-17 20:31
pread,pwrite这些不设置offset
作者: davelv    时间: 2010-08-17 21:01
楼上正解!
作者: prophet_    时间: 2010-08-17 21:48
多线程pwrite的话,会不会产生冲突呢?
作者: rain_fish    时间: 2010-08-17 21:49
应该有冲突吧。。。。
作者: ydfgic    时间: 2010-08-17 23:06
谢谢大家
作者: ydfgic    时间: 2010-08-17 23:35
pread,pwrite,是不是还是改变了inode里的那个偏移量?如果这样,那么应该是会线程不安全
作者: zzyong08    时间: 2010-08-18 08:20
回复 7# ydfgic


    没有改变。The file offset is not changed,文档如是说。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2