linux - 创建的文件何时对 ext4 中的其他进程可见?

标签 linux concurrency filesystems consistency ext4

考虑这个伪代码和一个 ext4 文件系统:

f = open("/tmp/new_file", "w")
write(f, "Test")
close(f)

在另一个进程中,我尝试在之后立即打开/tmp_newfile:

问题

  1. 其他进程可以打开文件吗?
  2. 其他进程看到什么内容?是测试吗?

期望

我希望 (1) 为真(元数据可能在进程之间同步)但 (2) 为假(数据可能被缓冲)

更多问题

  1. 如何确保我的文件更改对其他进程可见? flush 似乎可以工作,但它对性能不利,因为它会强制写入磁盘。是否有类似 soft-flush 的东西可以使更改对其他进程可见,而无需将其刷新到磁盘?

最佳答案

Is it guaranteed, that the other process can see the file?

不,不能保证。

第三个进程可以删除该文件,即使您打开它也是如此。

关于linux - 创建的文件何时对 ext4 中的其他进程可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50510907/

相关文章:

java - 为什么创建了一个JFrame对象并设置为可见后,程序还没有结束执行?

c#-4.0 - 限制正在进行的流式资源并行操作的工作

php - 如何将图像存储到文件系统(在 Internet 上)并将路径存储到数据库?

filesystems - LBA和集群

java - 在Java中如何计算目录中具有相同文件扩展名的文件数量?

linux - SUID 不适用于 shell 脚本

python - 如何查看安装的 pip 包大小?

java - 如何将字符串从工作线程发送到文本区域?

linux - 在 Linux 中使用管道日期进行 grep

linux - 如何管理/轮换/删除 mesos 日志