并发访问文件linux

并发访问文件linux,第1张

概述我正在研究如何在 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); 我正在研究如何在 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 structloff_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不使用任何锁定机制来保护对文件的多线程写入.

您必须使用自己的互斥锁来保护您的文件.

总结

以上是内存溢出为你收集整理的并发访问文件linux全部内容,希望文章能够帮你解决并发访问文件linux所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存