Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 - Fatal编程技术网

julia中未关闭的文件写入不同的输出?

julia中未关闭的文件写入不同的输出?,julia,Julia,我有一个julia程序,模拟一个系统集合。 基本上,在每一次实现中,我都会记录观察值,作为时间和书写的函数, 每实现一次,结果将被保存到一个文件中 我最近注意到,我有一个文件,我写我的结果,没有正确的答案 close(filename) 指挥部。可以肯定的是,如果我没有正确关闭我用来写的文件,我的数字会有错误吗 由于julia在编译时不会引发错误,我想知道这是否是由julia隐式完成的,该文件将在脚本末尾自动关闭(或者,如果在函数中打开,则在函数末尾) 更准确地说,当文件指针超出范围时,它将被

我有一个julia程序,模拟一个系统集合。 基本上,在每一次实现中,我都会记录观察值,作为时间和书写的函数, 每实现一次,结果将被保存到一个文件中

我最近注意到,我有一个文件,我写我的结果,没有正确的答案

close(filename)
指挥部。可以肯定的是,如果我没有正确关闭我用来写的文件,我的数字会有错误吗


由于julia在编译时不会引发错误,我想知道这是否是由julia隐式完成的,该文件将在脚本末尾自动关闭(或者,如果在函数中打开,则在函数末尾)

更准确地说,当文件指针超出范围时,它将被关闭


更准确地说,当文件指针被垃圾回收时,它将被关闭。

所有
IOStream
s将被关闭,并且在进程退出之前刷新它们的缓冲区。但是,
IOStream
关闭的时间是不可预测的

具体机制如下。
open
函数创建一个文件
IOStream
,向垃圾收集器注册一个finalizer。Julia会定期调用垃圾收集器,垃圾收集器会销毁任何无法访问的数据结构;如果它销毁了一个
IOStream
,它将运行相关的finalizer关闭文件


<> P>既然垃圾收集器运行的时间是不可预测的,最好明确地关闭<代码> IoStult:你应该考虑终结机制只是一个额外的安全措施,以防忘记调用<代码>关闭< /代码> .< /P>所以,如果我有几个文件,每个实现一个,然后所有文件都会在模块结束时关闭,对吗?是的,所有文件都会关闭我还没有检查,但我很确定只有当文件被垃圾收集时,文件才会关闭,这可能比它超出范围时要晚得多。