omo posso sincronizar - tornar atômica - gravações em um arquivo a partir de dois processo

Tenho dois processos para gravar um grande buffer de dados e quero controlar a sincronização das gravações desses processos em um arquiv

procede 1 buffer de gravação A incluindo (A1, A2, A3) e processe 2 buffer de gravação B incluindo (B1, B2, B3). quando usamoswrite() chamada do sistema para gravar esses buffers em disco no mesmo arquivo (buffer inteiro de uma vez:write(fd, A, sizeof(A))), Como está o esquema do arquivo?

É assim: A, B ou B, A talvez?ou poderia ser assim: A1, A2, B1, A3, ...

Estou perguntando isso porque as chamadas do sistema são atômicas. o que acontece se o buffer de dados que estamos escrevendo for muito grande. É como canais para arquivos de disco regulares?

questionAnswers(3)

yourAnswerToTheQuestion