并发访问文件linux
发布时间:2020-12-13 19:19:19 所属栏目:Linux 来源:网络整理
导读:我正在研究如何在 linux中完成系统调用读/写,我发现了这个: ....loff_t pos = file_pos_read(f.file);ret = vfs_read(f.file,buf,count,pos);file_pos_write(f.file,pos);fdput(f);...` 我的问题是: 锁定在哪里?我想象的是: ....lock(f.file); // -- loc
我正在研究如何在
linux中完成系统调用读/写,我发现了这个:
.... loff_t pos = file_pos_read(f.file); ret = vfs_read(f.file,buf,count,&pos); file_pos_write(f.file,pos); fdput(f); ...` 我的问题是: 锁定在哪里?我想象的是: .... lock(f.file); // <-- lock file struct loff_t pos = file_pos_read(f.file); ret = vfs_read(f.file,pos); fdput(f); unlock(f.file); // <-- unlock file struct ... 如果多个线程同时尝试读/写,它们可以在相同的偏移量下读/写? 如果我的理解是正确的,那个linux不使用任何锁定机制来保护偏移量,这个POSIX是否兼容? 我确实看过POSIX规范,但没有发现这个案例. 解决方法
Linux不使用任何锁定机制来保护对文件的多线程写入.
您必须使用自己的互斥锁来保护您的文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读