先说一些细节:
假设我有一些名为 cpp_code 的 C++ 代码,它:
一些简化的 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 文件只出现一秒钟左右,然后突然消失。
问题:
请放轻松,因为计算不是我的主要学科。
非常感谢您的宝贵时间。
最佳答案
许多程序将其输出写入临时文件,然后将其重命名为目标文件。如果进程在写入时被终止,通常这样做是为了避免留下半写入的输出文件。通过使用临时文件,文件可以自动重命名为输出文件名,确保:
请注意,通常仍有一些竞争条件可能会导致,例如,输出文件被删除但临时文件未重命名,但上述两种结果之一是总体目标。
关于c++ - 这些 .tmp 文件来自哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23275916/