+1 Блокировка файлов - это, вероятно, лучший способ, так как зачастую неэффективно (или сложно) записать все за один раз.

я есть два процесса, каждый из которых записывает большой буфер данных, и я хочу контролировать синхронизацию записи этих процессов в один файл.

буфер записи процесса 1, включающий (A1, A2, A3), и буфер записи процесса 2, включающий (B1, B2, B3). когда мы используемwrite() системный вызов для записи этих буферов на диск в один и тот же файл (весь буфер за один раз:write(fd, A, sizeof(A))) Как схема файла?

Это так: A, B или B, A возможно?или это может быть так: A1, A2, B1, A3, ...

Я спрашиваю об этом, потому что системные вызовы являются атомарными. что произойдет, если буфер данных, который мы пишем, слишком велик. Это как каналы для обычных файлов на диске?

Ответы на вопрос(3)

Ваш ответ на вопрос