c – 这些.tmp文件来自哪里?
发布时间:2020-12-16 09:51:58 所属栏目:百科 来源:网络整理
导读:首先,一些细节: 我正在使用C(Armadillo library)和R的组合. 我使用Ubuntu作为我的操作系统. 我没有使用Rcpp 假设我有一些名为cpp_code的C代码: 作为R的输入读取整数, 执行一些计算, 将输出保存为R的电子表格“out.csv”. (我用.save( name,file_type = csv
首先,一些细节:
>我正在使用C(Armadillo library)和R的组合. 假设我有一些名为cpp_code的C代码: >作为R的输入读取整数, 一些简化的R代码将是: for(i in 1:10000) { system(paste0("echo ",toString(i)," | ./cpp_code")) ## produces out.csv output[i,] <- read.csv("out.csv") ## reads out.csv } 我的问题: 99%的时间,一切正常.但是,我时不时地收到一些不寻常的.tmp文件,例如:“out.csv.tmp_a0ac9806ff7f0000703a”.这些.tmp文件只出现一秒左右,然后突然消失. 问题: >是什么导致了这个? 请放轻松,因为计算不是我的主要学科. 非常感谢您的宝贵时间. 解决方法
许多程序将其输出写入临时文件,然后将其重命名为目标文件.这通常是为了避免在写入过程中杀死进程时留下半写输出文件.通过使用临时文件,可以将文件原子重命名为输出文件名,从而确保:
>整个输出文件正确写入或 请注意,通常仍有一些竞争条件可能会导致,例如,输出文件被删除但临时文件未重命名,但上述两个结果中的一个是一般目标. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |