В большинстве операционных систем, совместимых с Unix и Posix, выполняющих вызов операционной системы open() с O_APPEND, указывается на ОС, которые записывают, должны быть атомарными добавлениями и записью. При таком поведении для локальных файловых систем при записи вы знаете, что они добавляются в конец файла.Как я могу выполнить атомарную запись/добавление в C# или как получить файлы, открытые с помощью флага FILE_APPEND_DATA?
Операционные системы Windows поддерживают ту же функциональность, передав FILE_APPEND_DATA
в соответствующий параметр системному вызову Win32 CreateFile().
ссылки:
http://www.google.com/search?q=msdn+createfile
or: http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
http://www.google.com/search?q=msdn+IoCreateFileSpecifyDeviceObjectHint
or: http://www.google.com/search?q=msdn+IoCreateFileSpecifyDeviceObjectHint
Моя проблема заключается в следующем, я не могу определить, как получить это поведение в C# с использованием библиотеки Net Framework, есть способ, чтобы получить такое поведение с помощью Net Framework? Я не верю, что использование FileMode.Append дает такое поведение, кстати.
Фред, это замечательный ответ. – Cameron
Точно так же, как с использованием API 'File.AppendText'? – Ben
Последний параметр конструктора FileStream «bufferSize» или 4096 в этом примере будет верхней границей длины атомной записи. – Cameron