Projektuję system, który będzie zapisywać dane szeregów czasowych do pliku. Dane to bloki 8 bajtów podzielone na dwie 4 bajty części, czas i ładunek.Czy atom jest WriteFile?
Według MSDN funkcja WriteFile jest atomowa (http://msdn.microsoft.com/en-us/library/aa365747(VS.85).aspx), jeśli zapisane dane mają mniejszy rozmiar niż sektor.
Ponieważ plik będzie zawierał tylko te bloki (nie ma "struktury" pliku, więc nie można odtworzyć uszkodzonego pliku), dodane jeden po drugim, ważne jest, aby cały blok, lub nic nie jest napisane do pliku przez cały czas.
Pytanie brzmi, czy zrozumiałem poprawnie, że plik zapisu mniejszy niż rozmiar sektora jest zawsze zapisywany całkowicie na dysku lub w ogóle nie jest zapisany, bez względu na to, co dzieje się podczas faktycznego wywołania pliku zapisu?
Czy jest atomowy tak długo, jak maszyna jest w stanie zdrowego? (np. jeśli proces może ulec awarii, ale jądro jest utrzymywane w dobrym stanie, to czy jest atomowe?) – Mehrdad