Domanda

È sicuro chiamare rename(tmppath, path) senza chiamare fsync(tmppath_fd) primo?

Voglio il percorso per indicare sempre un file completo. Mi interessa principalmente Ext4. Il Rename () è stato promesso di essere al sicuro in tutte le versioni future del kernel Linux?

Un esempio di utilizzo in Python:

def store_atomically(path, data):
    tmppath = path + ".tmp"
    output = open(tmppath, "wb")
    output.write(data)

    output.flush()
    os.fsync(output.fileno())  # The needed fsync().
    output.close()
    os.rename(tmppath, path)

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top