在 Rust 中关闭存储在 Map 中的文件

我将打开的文件存储在地图中:HashMap<u32,File>。有时会调用函数 read_to_filewrite_to_file。他们从地图中获取文件并进行相应的程序。为了避免在同一个文件中写入和读取时发生冲突,我需要关闭该文件。我该怎么做?

henshui22 回答:在 Rust 中关闭存储在 Map 中的文件

根据 Rust documentation std::fs::File 是:

对文件系统上打开文件的引用。

如果您将 File 存储在地图中,那么根据定义,它们是开放的。当变量被删除(超出范围)时,它们会自动关闭。

相反,您可以考虑在地图中存储 Path,并按需打开文件。如果您出于某种原因需要存储打开的文件,那么您可以将它们包装在 Arc<Mutex>(如果您的应用程序是单线程的,则为一个 `Rc),以防止同时访问。

本文链接:https://www.f2er.com/4660.html

大家都在问