微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据posix的说法,我的文字什么时候对其他进程可见?

如何解决根据posix的说法,我的文字什么时候对其他进程可见?

如果我打开带有O_CREAT | O_WRONLYwrite文件。 posix是否会说1)其他应用程序可以看到文件夹中的文件(没有fsync),以及2)可以看到我写的内容?我在没有进行fsync的情况下进行close之后也遇到了同样的问题。现在,一旦我的程序结束,它将最终结束吗?我知道fsync会确认我的写操作在磁盘上,但我不需要文件在磁盘上,我需要其他进程可以看到它

解决方法

是的,其他进程会立即看到您的写入。您不需要关闭或fsync。

https://pubs.opengroup.org/onlinepubs/009695399/functions/write.html

可以针对其他读取和写入对写入进行序列化。如果可以证明(通过任何方式)在数据的write()之后发生文件数据的read(),则即使调用是由不同的进程进行的,它也必须反映该write()。类似的要求适用于对同一文件位置的多次写入操作。这是保证从write()调用到后续的read()调用的数据传播所必需的。

例如,这意味着,如果操作系统缓存您的写入而不是将其实际写入磁盘,则需要确保从同一缓存中完成对该文件的任何其他读取。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。