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?
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?