Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Julia中,如何在为内存映射创建文件后删除该文件?_Julia_Memory Mapping - Fatal编程技术网

在Julia中,如何在为内存映射创建文件后删除该文件?

在Julia中,如何在为内存映射创建文件后删除该文件?,julia,memory-mapping,Julia,Memory Mapping,我一直在尝试使用大型数据结构,这些数据结构存储的数据量超过了ram所能处理的,因此我不得不使用mmap 这一切工作如预期,但在代码结束时,我想删除这个临时文件,因为它不再使用 我已尝试使用rm删除该文件,或在文件运行时手动删除该文件,但我没有这样做的权限 这就是我的代码的样子 using Mmap io = open("example.tmp", "w+") v = Mmap.mmap(io,Vector{Int64},Int64(1e9)) close(io) #Perform some

我一直在尝试使用大型数据结构,这些数据结构存储的数据量超过了ram所能处理的,因此我不得不使用mmap

这一切工作如预期,但在代码结束时,我想删除这个临时文件,因为它不再使用

我已尝试使用rm删除该文件,或在文件运行时手动删除该文件,但我没有这样做的权限

这就是我的代码的样子


using Mmap

io = open("example.tmp", "w+")
v = Mmap.mmap(io,Vector{Int64},Int64(1e9))
close(io)

#Perform some actions on vector v

#attempt to delete here, rm("example.tmp") returns an EACCES error though

我希望能够在不再使用时自动删除此.tmp文件,我将如何执行此操作

using Mmap

io = open("example.tmp", "w+")
v = Mmap.mmap(io,Vector{Int64},Int64(1e9))
close(io)

#Perform some actions on vector v

v = nothing # delete reference to memory mapped data
GC.gc() # call garbage collector to be safe

rm("example.tmp") # should work now
只要存在对内存映射数据的引用,您可能会遇到权限问题。毕竟,您仍然可以使用
v
。通过设置
v=nothing
并随后调用GC,尝试删除/覆盖对数据的任何引用