我正在编写一个程序来更改文件。我想要的语义是旧版本应保留在文件系统上,直到编写新版本为止。也就是说,从旧版本到新版本之间的过渡应该是原子性的。在Linux或者最好是任何POSIX系统上执行此操作的正确方法是什么?
答案 0 :(得分:3)
以原型方式执行此操作的规范方法是创建一个临时文件,当您完成后,将其移动以覆盖原始文件。然后你进入另一个问题领域。看看这个Is rename() without fsync() safe?
答案 1 :(得分:0)
以不同的名称编写新文件,然后拨打y1=rnorm(10,0,1)
y2=rnorm(10,0,1)
y3=rnorm(10,0,1)
x=seq(1,10,1)
mat=cbind(y1,y2,y3)
a=c(1,4,7)
b=c(2,5,8)
g=c(3,6,9)
v=as.factor(paste(expression(alpha)," = ",a,", ",
expression(beta)," = ",b,", ",
expression(gamma)," = ",g))
matplot(x,mat,type="l",col=1:3,lty=1,xlab="x",ylab="mat",main="Legend Practice")
legend("bottomright",col=1:3,lty=1,legend=levels(v))
。
答案 2 :(得分:0)
我正在编写一个程序来更改文件
现有的计划是patch
。
运行diff -[option] old-file new-file >> name.patch
e.g。 diff -Naur old-file new-file >> name.patch
...并使用patch命令编辑文件,例如patch -p0 < name.patch