En la mayoría de los sistemas operativos Unixes y Posix que realizan una llamada al sistema operativo open(), el O_APPEND indica al sistema operativo que las escrituras deben ser operaciones de adición y escritura atómicas. Con este comportamiento, para los sistemas de archivos locales cuando escribe, sabe que se anexa al final del archivo.¿Cómo puedo hacer una escritura/adición atómica en C#, o cómo puedo abrir archivos con el indicador FILE_APPEND_DATA?
Los sistemas operativos Windows admiten la misma funcionalidad al pasar FILE_APPEND_DATA
en el parámetro apropiado a la llamada al sistema Win32 CreateFile().
referencias:
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
Mi problema es el siguiente, no puedo determinar cómo conseguir este comportamiento en C# utilizando el marco neto Bibliotecas, ¿hay una manera de conseguir tal comportamiento con el Net Framework? No creo que usar FileMode.Append proporcione ese comportamiento, por cierto.
Fred, esta es una respuesta increíble. – Cameron
¿Es lo mismo que usar la API 'File.AppendText'? – Ben
El último parámetro del constructor de FileStream, 'bufferSize', o 4096 en este ejemplo será un límite superior en la longitud de una escritura atómica. – Cameron