Ich schreibe gerade einige Bezeichner in eine Datei, last_imported.txt
. Jedes Mal, wenn ich einen Bezeichner importiere, möchte ich, dass die Datei nur diesen Inhalt enthält.WriteFile abgebrochen Mitte
Es sieht so aus, als würde ioutil.WriteFile("last_import.txt", []byte(id), 0644)
den Job erledigen, aber es lässt die Datei nach dem Zufallsprinzip leer, ohne den neuen Bezeichner zu schreiben, wenn ich den Job abbringe und einen plötzlichen Absturz simuliere.
Ich vermute, dass, wenn es leer bleibt, es ist, weil f.write(data)
nie erreicht wird.
func WriteFile(filename string, data []byte, perm os.FileMode) error {
f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
if err != nil {
return err
}
n, err := f.Write(data)
if err == nil && n < len(data) {
err = io.ErrShortWrite
}
if err1 := f.Close(); err == nil {
err = err1
}
return err
}
Wie stelle ich sicher, dass die Datei nicht leer bleibt?
Warum nicht Sie Verdacht zu überprüfen, indem die Protokollierung hinzugefügt? –