Господа, такой вопросик, даже два.
Выполняю асинхронную запись в файл через mmap, примерно так:
msync(ptr, 4096, MS_ASYNC);
msync(ptr + 4096, 4096, MS_ASYNC);
1. Гарантируется ли в этом случае последовательность записи данных на диск, то есть сначала будет записана первая страница, затем вторая? Либо для асинхронных опреаций в общем случае никакой последовательности не соблюдается?
2. Если сразу после второго вызова msync (или во время его выполнения в другом потоке), вторая страница будет перезаписана, то какие данные в конечном итоге попадут в файл? Те, которые были на момент вызова msync, или на момент физической записи на диск?